htaccess код для перенаправления всех внутренних ссылок - PullRequest
2 голосов
/ 29 июня 2019

Мой предыдущий адрес веб-сайта: qaz.com/home-page/

Я хочу перенаправить все старые адреса на новый домен: wsx.com/home-page/

Я мог бы сделать это для основного адреса: qaz.com перенаправлен на wsx.com/home-page/ правильно с этим кодом:

RewriteRule ^/?$ "https\:\/\/wsx\.com\/home-page\/" [R=301,L]

но внутренние ссылки, такие как: https://qaz.com/home-page/professional-theme/ не перенаправил на https://wsx.com/home-page/professional-theme/

CMS моего сайта - WordPress. Вы можете помочь решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 29 июня 2019

Отметьте это правило перезаписи 1: 1 (qaz.com/anything <> wsx.com/anything) поверх файла .htaccess в папке Wordpress

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?qaz\.com [NC]
RewriteRule (.*) https://wsx.com/$1 [R=301,L]

или всех ссылок с qaz.comна wsx.com/home-page/ (qaz.com/anything <> wsx.com/home-page/)

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?qaz\.com [NC]
RewriteRule (.*) https://wsx.com/home-page/ [R=301,L]
0 голосов
/ 29 июня 2019

Это будет ближайший ответ на ваш точный вопрос:

RewriteEngine on
RewriteCond %{HOST_NAME} ^qaz\.com [NC]
RewriteRule ^/?home-page/(.+)$ https://wsx.com/home-page/$1 [R=301,QSA]

Хорошей идеей будет начать с временного перенаправления 302 и изменить его только на постоянное перенаправление 301 позже, как только выуверен, что все правильно настроено.Это предотвращает проблемы с кэшированием при испытаниях ...

Это правило также будет работать в конфигурации хоста http-серверов или внутри файла динамической конфигурации (файл ".htaccess").Очевидно, что модуль перезаписи должен быть загружен внутри http-сервера и включен на хосте http.Если вы используете динамический файл конфигурации, вам нужно убедиться, что его интерпретация вообще включена в конфигурации хоста и находится в папке хоста DOCUMENT_ROOT.

И общее замечание: вам всегда следует размещать такие правила в конфигурации хоста http-серверов, а не использовать файлы динамической конфигурации (".htaccess").Эти динамические конфигурационные файлы добавляют сложность, часто являются причиной неожиданного поведения, их трудно отладить, и они действительно замедляют работу http-сервера.Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет доступа к реальной конфигурации хоста http-серверов (читай: действительно дешевые поставщики услуг) или для приложений, настаивающих на написании своих собственных правил (что является очевидным кошмаром безопасности).

0 голосов
/ 29 июня 2019

Вы можете использовать директиву Redirect вместо mod_rewrite:

Rewrite / https://wsx.com/

Если оба имени сервера обслуживаются из одной конфигурации VHost:

<If "%{HTTP_HOST} != 'wsx.com'">
    Rewrite / https://wsx.com/
</If>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...