我想重写我的URL,以便我可以访问客户端看作子域的文件夹。客户端会将以下内容放在URL栏中:
abc.def.com
并通过URL重写将转到
def.com/abc
静默。请告诉我该怎么做?
答案 0 :(得分:2)
您应该使用%{HTTP_HOST}
代替%{REMOTE_HOST}
。这是因为%{REMOTE_HOST}
是%{REMOTE_ADDR}
的反向DNS查询的结果,如果HostnameLookups
已启用。
所以你的规则应该是
RewriteCond %{HTTP_HOST} ^(?:www\.)?([^\.]+)\.your_domain\.com [NC]
RewriteRule ^(.*) /%1/$1 [L]
答案 1 :(得分:1)
你的RewriteRule中只有很少的变化可以很好地运作
RewriteCond %{HTTP_HOST} ^(?:www\.)?([^\.]+)\.your_domain\.com [NC]
RewriteRule ^(.*)$ /%1/$1 [L]
你应该在RewriteRule中使用$。希望这对你有所帮助。
答案 2 :(得分:0)
如果您已经知道子域名,您可以:
RewriteCond %{REMOTE_HOST} ^(?:www\.)?subdomain\.your_domain\.com [NC]
RewriteRule ^(.*) /subdomain/$1 [L]
如果您希望支持任何可能的子域名,请使用:
RewriteCond %{REMOTE_HOST} ^(?:www\.)?([^\.]+)\.your_domain\.com [NC]
RewriteRule ^(.*) /%1/$1 [L]