我希望我的.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 ......
答案 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