#php #wordpress #apache #.htaccess #mod-rewrite
#php #wordpress #apache #.htaccess #мод-переписать
Вопрос:
У меня есть сайт WordPress, работающий на EC2. Он размещен в каталоге, подобном этому:
www.olddomain.ca/blog
Мы переходим на новый URL, поэтому я продублировал сайт на новом веб-сайте:
www.newdomain.com
Я хотел бы перенаправить пользователей, получающих доступ к сообщениям в старом домене, на эквивалентную запись в новом домене. Я считаю, что mod-rewrite — правильный инструмент для этого. Однако мой пользователь что-то сделал с конфигурацией WordPress на новом сайте, что делает URL-адреса другими.
Пример:
http://www.olddomain.ca/blog/?p=296
становится http://www.newdomain.com/index.php/p296
У меня возникли проблемы с выполнением этой работы — я никогда не использовал mod-rewrite, и это кажется сложным сценарием. Любая помощь?
Ответ №1:
Поместите этот код в свой DOCUMENT_ROOT/.htaccess
файл старого домена:
RewriteEngine On
# URIs without any p=... query string
RewriteCond %{HTTP_HOST} olddomain.ca$ [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^blog/(.*)$ http://www.newdomain.com/$1 [NC,NE,R=301,L]
# URIs with p=... query string
RewriteCond %{HTTP_HOST} olddomain.ca$ [NC]
RewriteCond %{QUERY_STRING} (?:^|amp;)p=([^amp;] ) [NC]
RewriteRule ^blog/?$ http://www.newdomain.com/index.php/p%1? [NC,NE,R=301,L]
Комментарии:
1. Спасибо за вашу помощь. Повлияет ли это на корневой сайт всего www.olddomain.ca (не / blog)?
2. Нет, это повлияет только
/blog
Я полагаю, что это то, чего вы хотели, верно?