如何从some-sub-domain.some-domain.com重写URL到some-domain.com/some-sub-domain

时间:2011-05-16 19:39:24

标签: .htaccess mod-rewrite url-rewriting

我想重写我的URL,以便我可以访问客户端看作子域的文件夹。客户端会将以下内容放在URL栏中:

abc.def.com

并通过URL重写将转到

def.com/abc

静默。请告诉我该怎么做?

3 个答案:

答案 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]