Перенаправление не-www на www не работает - PullRequest
0 голосов
/ 02 марта 2011

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

RewriteEngine On
RewriteCond % ^megahotserved.com [NC]
RewriteRule ^(.*)$ http://www.megahotserved.com/$1 [L,R=301]

перезапустил apache и безрезультатно и затем попытался

<VirtualHost *:80>
    ServerName megahotserved.com
    Redirect permanent / http://www.megahotserved.com/
</VirtualHost>

в файле httpd.conf, когда я перезапустил apache, Firefox выдал ошибку

Страница не перенаправляет должным образом.

Firefox обнаружил, что сервер перенаправляет запрос на этот адрес способом, который никогда не будет завершен.

Что мне делать?

Ответы [ 3 ]

1 голос
/ 13 августа 2011

ваш код верен, вам просто нужно следовать следующему абзацу, который я цитировал из http://httpd.apache.org/docs/current/mod/mod_rewrite.html

По умолчанию параметры конфигурации mod_rewrite из контекста главного сервера не наследуются виртуальными хостами.Чтобы настройки основного сервера применялись к виртуальным хостам, в каждый раздел необходимо поместить следующие директивы:

RewriteEngine On
RewriteOptions Inherit
0 голосов
/ 02 марта 2011

Согласитесь с вышесказанным и небольшим дополнением: лучше перенаправлять не-www на www, а не переписывать, иначе у вас есть два полных представления («копии») всего вашего сайта; каждая страница имеет два URL вместо одного канонического. Это может быть плохо для поисковых систем и прочего.

0 голосов
/ 02 марта 2011

Похоже, у вас нет VirtualHost, который правильно соответствует адресу www., поэтому запросы на http://www.megahotserved.com/ попадают в тот же виртуальный хост и попадают в циклическое перенаправление.Так что редирект работает нормально;у вас просто есть другая часть конфигурации сервера, которую нужно исправить.

...