重写动态子域的规则,使用子域参数重定向每个文件

时间:2011-10-03 05:54:02

标签: .htaccess

我想使用额外的变量将所有调用重定向到子域中的文件。就像用户访问www.domain.com/news.php并在子域中访问同一页面一样,它应该为URL添加一个额外的参数,如xyz.domain.com/news.php应该像调用文件news.php?subdomain=xyz一样重写。我还有其他简单域名的规则。

RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,NC]

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$
RewriteRule ^$ /index.php?subdomain=%1 [L]

2 个答案:

答案 0 :(得分:1)

RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,NC,L]


RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC]
RewriteCond %{QUERY_STRING}  ^$
RewriteRule ^(.*)$   http://www.domain.com%{REQUEST_URI}?subdomain=%1 [L]


RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC]
RewriteCond %{QUERY_STRING}  !^$
RewriteRule ^(.*)$   http://www.domain.com%{REQUEST_URI}?%{QUERY_STRING}&subdomain=%1 [L]

答案 1 :(得分:0)

adaptr在https://serverfault.com/a/409171/128746指出的解决方案 - 可以很好地解决这个问题。