301 перенаправить все страницы, но только одно правило на другое правило - PullRequest
0 голосов
/ 12 июня 2018

Я хочу перенаправить subdomain.example.com на newsubdomain.example.com.Оба работают по одним и тем же правилам перенаправления, но одно из этих правил не делает то, что мне нужно.Мне нужно перенаправление 301 под новым правилом (с использованием другой структуры URL).

Пример: http://subdomain.example.com/c/138 до http://newsubdomain.example.com/138/

RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain.example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]

RewriteCond %{QUERY_STRING} ^c/([^&]+)
RewriteRule ^/?category\.php$ http://www.alarab.com/%1/ [L,R=301]

Есть предложения?

Спасибо

1 Ответ

0 голосов
/ 12 июня 2018

Второе правило здесь не имеет значения, только первое.


Существует два способа сделать оптовое перенаправление.Одной из них будет ваша попытка с RewriteRule, но вы должны захватить только последнюю часть пути после /c, например,

RewriteRule ^c/(.*)$ http://www.example.com/$1 [L,R,NC]

Второй способ будетбыть с Redirect из mod_alias

Redirect /c http://www.example.com

Оба способа захватывают деталь после префикса и помещают ее на целевой путь.


Наконец, несвязанный, никогда тест с R=301!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...