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]
Другие вопросы по тегам