В моем 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]