Назад | Перейти на главную страницу

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?

Спасибо за вашу помощь.

Я сделал эту работу с несколькими 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]