У меня есть веб-сайт словаря, который использует WordPress. Теперь URL-адрес для любого термина, такого как «myterm», имеет форму: http://domain.com/myterm. Я хочу, чтобы он перенаправлял на http://domain.com/definition/myterm. Я не знаю, как использовать регулярное выражение для такого перенаправления. Также существуют некоторые URL-адреса, такие как domain.com/contact-Us и domain.com/FAQ, которые я не хочу перенаправлять на /definition/Contact-us и /definition/FAQ. Любая помощь?
Перенаправить в подкаталог
Ответы:
Попробуйте следующее в htaccess
RedirectMatch ^/myterm$ /definition/myterm
если myterm является динамическим путем, вы можете использовать группу захвата Regex для захвата значения пути, оно будет сохранено как $ 1 для повторного использования в целевом пути.
RedirectMatch ^/(.*)$ /definition/$1
Чтобы исключить определенные пути из перенаправления, вы можете использовать
RedirectMatch ^/((?!contect-us|FAQ).*)$ /definition/$1
а чтобы свести на нет дополнительные пути, просто добавьте их в группу захвата, разделенную вертикальной чертой foo|bar|foobar.
Редактировать :
Также нужно исключить каталог из редиректа, чтобы он не мог перенаправить на себя.
Попробуй это
RedirectMatch ^/((?!contect-us|FAQ|defination).*)$ /definition/$1
замените «определение» на имя вашей папки в шаблоне и цели.
Моя проблема решена. Я использовал редирект, предложенный Starkeen. Однако не в файле .htaccess. Я использовал простую переадресацию 301. Он работает правильно, не конфликтуя с правилами WordPress.