.htaccess输出url取决于子域和请求的文件

时间:2012-07-13 10:49:10

标签: .htaccess mod-rewrite

我希望我的.htaccess具有以下输入/输出模式:

场景#1:

输入:http:// subdomain .domain.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


我设法使用以下.htaccess处理方案#1:

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 个答案:

答案 0 :(得分:1)

更改规则,使其仅处理^$(例如,没有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