2012-07-13 35 views
1

我希望我的.htaccess有以下输入/输出模式:取决于子域和文件输出的.htaccess请求的URL

方案1:

输入:HTTP:// subdomain。域.COM

输出:http://www.domain.com/usersite/site.php?site=subdomain

方案#2:

输入:HTTP:// subdomain .domain.com/tos.html

输出:http://www.domain.com/usersite/tos.php?site=subdomain


我设法处理场景#1以下的.htaccess:

RewriteCond %{HTTP_HOST} !^www.domain.com 
RewriteCond %{HTTP_HOST} ([^.]+).domain.com [NC] 
RewriteRule ^(.*)$ http://www.domain.com/usersite/site.php?site=%1 [L] 

但我不知道如何照顾场景#2 ...

回答

1

改变你r规则,以便它仅处理^$(例如,没有URI,只是/)。然后复制的条件,只是要确保你不会重写现有资源,检查-f-d

第一条规则:

RewriteCond %{HTTP_HOST} !^www.domain.com 
RewriteCond %{HTTP_HOST} ([^.]+).domain.com [NC] 
RewriteRule ^$ http://www.domain.com/usersite/site.php?site=%1 [L] 

第二条规则:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{HTTP_HOST} !^www.domain.com 
RewriteCond %{HTTP_HOST} ([^.]+).domain.com [NC] 
RewriteRule ^(.*)\.html$ http://www.domain.com/usersite/$1.php?site=%1 [L] 

应该处理你的第二个方案中,重定向到/tos.html/usersite/tos.php?site=subdomain