mod_rewrite捕获域和tld

我正在使用mod_write来重写这个

www.variabledomain.variableext 

 http://my.com/variabledomain.variableext 

请注意, variabledomainvariableext是真正的variables,所以我不能硬编码它们。

我不是mod_rewrite的专家,但我认为像这样的工作,但事实并非如此。 任何想法,而不是我应该做的。

 RewriteRule ^(.*)\.(.*)\.(.*)$ http://my.com/$2\.$3 [R=301,L] 

RewriteRule只匹配URLpath,而不是主机名。 你将需要使用RewriteCond ,例如

 RewriteCond HTTP_HOST ([^.]+)\.([^.]+)\.([^.]+)$ RewriteRule ^/(.*) http://example.com/%2.%3/$1 [R=301,L] 

关于如何在Apache文档“ 使用mod_rewrite的dynamic大容量虚拟主机 ”中做类似的事情,还有更多的例子。 请特别注意右边的“另请参阅”一节,它有很好的例子。