.htaccess 文件访问的子域重写规则不影响主站点文件

.htaccess 文件访问的子域重写规则不影响主站点文件,.htaccess,url-rewriting,subdomain,.htaccess,Url Rewriting,Subdomain,我已经建立了虚拟子域。我想让htaccess实现以下流程 为了 www.domain.com 它应该调用索引文件,但不调用子域 abc.domain.com 重写规则应该是 RewriteRule www.domain.com/index.php?var=abc 我的意思是它应该在HTACCESS中将子域作为参数传递给索引文件 对于其他文件请求,如 abc.domain.com/file.php 子域应该像www.domain.com/file.php?var=abc那样重写 我是说重写规

我已经建立了虚拟子域。我想让htaccess实现以下流程

为了 www.domain.com

它应该调用索引文件,但不调用子域

abc.domain.com
重写规则应该是

RewriteRule www.domain.com/index.php?var=abc
我的意思是它应该在HTACCESS中将子域作为参数传递给索引文件

对于其他文件请求,如

abc.domain.com/file.php
子域应该像www.domain.com/file.php?var=abc那样重写

我是说重写规则

RewriteRule www.domain.com/file.php?var=abc

这将是你如何在个人的基础上做他们

RewriteCond %{HTTP_HOST} ^abc\.domain\.com$ [NC]
RewriteRule (.*)$ http://www.domain.com/file.php?var=abc [L]

RewriteCond %{HTTP_HOST} ^def\.domain\.com$ [NC]
RewriteRule (.*)$ http://www.domain.com/file.php?var=def [L]

解决办法是这样的

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC]
RewriteCond %{QUERY_STRING}  ^$
RewriteRule ^(.*)$   http://www.domain.com/index.php?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]

不,子域是动态的,我需要一个一般规则,即每当子域调用文件时,应使用VAR=subdomain参数调用该文件,以便该文件可以为子域处理。。。我不能有硬编码的规则。。。