Я настроил пару «псевдонимов доменов» для веб-сайта, который я использую в качестве поддоменов без файлов cookie, поэтому static.domain.com/style.css
обслуживает тот же файл, что и www.domain.com/style.css
.
Однако, если кто-то пытается получить доступ к static.domain.com/index.htm
, он должен быть перенаправлен на 301 к www.domain.com/index.htm
.Правила mod_rewrite
, которые у меня есть в корневом веб-каталоге, я думал, что они будут работать, но они, похоже, не будут.
<IfModule mod_rewrite.c>
RewriteEngine On
# "/res/all.20110101.css" => "/res/all.css"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|jpeg|gif)$ $1.$3 [L]
# Except for "static" sub-domains, force "www" when accessed without
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteCond %{HTTP_HOST} !^s-img\.domain\.com [NC]
RewriteCond %{HTTP_HOST} !^static\.domain\.com [NC]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
# If file requested is HTML, force "www"
<FilesMatch "\.(htm|html|php)$">
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
</FilesMatch>
</IfModule>