1

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

4

1 回答 1

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

于 2012-07-13T16:34:45.077 回答