Apache Rewrite: * FULL * перенаправление без www на www - PullRequest
0 голосов
/ 08 февраля 2012

У меня проблемы с созданием перенаправления без www на www.Вот условия, которым я должен соответствовать ...

1.) Поддержка нескольких доменов (несколько доменов веб-сайтов указывали на один и тот же каталог на сервере со своей собственной выделенной копией базы данных).Это означает использование% {HTTP_HOST}, а НЕ статического доменного имени.

2.) ALL возможных путей (или, по крайней мере, соответствующих стандартам) необходимо перенаправить;это означает, что каталоги, HTTP-запросы и т. д.

3.) Я использую виртуальный хостинг, поэтому у меня есть доступ только к файлу .htaccess.

Вот то, с чем я работаюпрямо сейчас:

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

Подробности:

  • Я тестирую с отключенным кэшем браузера на всякий случай.

  • Я удалил другой синтаксис во время тестирования, чтобы увидеть, какие ответы работают сами по себе.

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

Вот, пожалуйста:

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Это также сохранит схему URI.

0 голосов
/ 08 февраля 2012

Это работает для меня (с моим доменным именем)

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^%{HTTP_HOST}
RewriteRule ^(.*)$ http://www\.%{HTTP_HOST}/$1 [R=301,L]

Единственное отличие, которое я вижу, - это соответствующий шаблон в RewriteRule.

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