Использование mod_rewrite для 301 для SERVER_NAME - PullRequest
2 голосов
/ 01 ноября 2010

В моем хосте Apache много ServerAlias, и я хочу, чтобы все домены, которые не являются ServerName, были привязаны к ServerName 301.

Это не работает:

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

Это работает:

RewriteCond %{HTTP_HOST} !www.some-domain.com [NC]
RewriteRule ^(.*)$ http://%{SERVER_NAME}/$1 [R=301,QSA,L]

Могу ли я сделать это без жесткого кодирования доменного имени?

Ответы [ 2 ]

4 голосов
/ 03 ноября 2010

Переменные окружения раскрываются только в левой части RewriteCond. Но вы можете использовать обратные ссылки, как это:

RewriteCond %{HTTP_HOST}/%{SERVER_NAME} !^([^/]+)/\1$
0 голосов
/ 03 сентября 2012

имя домена является частью CondPattern RewriteCond.

CondPattern отображается при запуске httpd, поэтому он не может содержать никаких динамических серверных переменныхне работает ..

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