Переписывание URL-адреса записи WordPress для нового домена

#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 Я полагаю, что это то, чего вы хотели, верно?