Перенаправление Apache 301 с одного домена на другой

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

<VirtualHost: *:80>
    ServerAlias www.gcbeauce.com
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^guidedescommercesdebeauce\.com$ [NC]
    RewriteRule ^(.*)$ http://www.guidedescommercesdebeauce.com$1 [R=301,L]

Но я также хочу перенаправить старый домен на новый. Я попытался добавить:

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

Но ничего не происходит.

Я что-то здесь упускаю?

3
задан 2 February 2011 в 03:02

3 ответа

Вы должны отменить матч. Попробуйте это:

RewriteCond ${HTTP_HOST} !^www\.guidedescommercesdebeauce\.com$ [NC]
RewriteRule ^(.*)$ http://www.guidedescommercesdebeauce.com$1 [R=301,QSA,L]

Обратите внимание на восклицательный знак в RewriteCond. Также обратите внимание, что это приведет к созданию одного канонического доменного имени. Я предполагаю, что это то, что вы хотите. Если нет, то вам придется перечислить доменные имена для перенаправления. В этом случае обязательно добавьте [OR] в конец RewriteCond.

Я также добавил [QSA] к вашим флагам. Таким образом, любая существующая строка запроса будет сохранена.

Наконец, вам настоятельно рекомендуется внимательно прочитать документацию по mod_rewrite, поскольку в ней есть ответы на этот и многие другие вопросы.

0
ответ дан 2 February 2011 в 03:02

Отсутствует слеш до $ 1?

RewriteEngine On
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]
0
ответ дан 2 February 2011 в 03:02

Если вы используете Apache 2.4, вам не нужно включать модуль apache для перезаписи:

0
ответ дан 2 February 2011 в 03:02

Другие вопросы по тегам:

Похожие вопросы: