我有一个现有的规则来重写:
的 subdomain.domain.com
这种格式:
的 domain.com/directory/index.aspx?id=subdomain
RewriteCond %{HTTP_HOST} !^www\. [NC]<br/>
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com [NC]<br/>
RewriteRule ^$ /directory/index.aspx?id=%1 [NC,QSA,L]
我需要更新此内容以支持:
的 subdomain.domain.com/foo
这种格式:
的 domain.com/directory/foo.aspx?id=subdomain
我试图对现有规则进行以下更改但没有成功:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com/(.*)
RewriteRule ^$ /directory/%2.aspx?id=%1 [NC,QSA,L]
第二个RewriteCond似乎没有匹配。我错过了一些容易的事吗?这应该以不同的方式处理吗? 感谢。
答案 0 :(得分:0)
HTTP_HOST变量包含HTTP“Host:”标头中的值 - 在您的情况下,即“subdomain.domain.com”。尾随URI(斜杠等)不存在。
您需要在规则中匹配该部分网址:
RewriteCond %{HTTP_HOST} !^www\. [NC]<br/>
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com [NC]<br/>
RewriteRule ^/([^/]+)$ /directory/$1.aspx?id=%1 [NC,QSA,L]
萨吕,
霍尔迪阿。