#mod-rewrite #redirect #url-rewriting
#перезапись мода #перенаправление #url-переписывание
Вопрос:
Я пытаюсь перенаправить 301
Для
и попытался:
redirect 301 /page.html http://subdomain.domain.com/page.html
Проблема в том, что и домен, и поддомен указаны на один и тот же каталог, и это приводит к перенаправлению таким образом, что оно никогда не завершится.
также безуспешно пытался:
RewriteCond %{HTTP_HOST} ^domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^page.html$ "http://subdomain.domain.com/page.html" [R=301,L]
Комментарии:
1. значит, это просто из тщеславия?…
2. Включен ли у вас mod_rewrite? И вы написали: RewriteEngine On, перед этими правилами?
3. да, mod_rewrite включен, и у меня включен RewriteEngine. В первом случае я думаю, что это просто цикл.
4. … и во втором случае я думаю, что правило работает только для папок?
5. проверьте журнал доступа apache, чтобы убедиться, что у вас действительно есть цикл перенаправления
Ответ №1:
хорошо … я понял это — второй случай работает — просто нужно поместить сразу после RewriteEngine на:
RewriteCond %{HTTP_HOST} ^domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^page.html$ http://subdomain.domain.com/page.html [R=301,L]
и это может быть использовано для нескольких правил при одном условии:
RewriteCond %{HTTP_HOST} !^(www.)?domain.com$ [NC]
RewriteRule .* - [S=2]
RewriteRule ^page.html$ http://subdomain.domain.com/page.html [R=301,L]
RewriteRule ^page-2.html$ http://subdomain.domain.com/page-2.html [R=301,L]