RewriteCond и запись www
В моем httpd.ini я перенаправляю весь трафик с "example.co.uk" на "www.example.co.uk", для этого отлично работает следующее:
RewriteCond %HTTPS off
RewriteCond Host: (?!^www.example.co.uk)(.+)
RewriteRule /(.*) http\://www.example.co.uk/$2 [I,RP]
У меня есть несколько микросайтов, которые также используют этот веб-сайт, например, "www.foobar.co.uk", установленный в заголовках узлов IIS 6. С указанными выше правилами "www.foobar.co.uk" заканчивается на "www.example.co.uk"!
Есть ли RewriteCond, который я могу сделать против запроса, чтобы убедиться, что запрос "example.co.uk" не захватывает микросайты и не переписывает их? Или, что еще лучше, я могу принять любой запрос, будь то "example.co.uk" или "foobar.co.uk", и просто поставить перед ним www?
Спасибо за вашу помощь.
2 ответа
Я сделал эту работу с несколькими URL-адресами (и справкой Эндрюса), с приведенным ниже.
RewriteCond %HTTPS off
RewriteCond Host: (?!^www.+)(.+)
RewriteRule /(.*) http\://www.$1/$2 [I,RP]
Попробуйте использовать следующее:
RewriteCond %HTTPS off
RewriteCond Host: !^www\..+
RewriteCond Host: ^(example|foobar)\.co\.uk
RewriteRule /(.*) http\://www.$1.co.uk/$2 [I,RP]