我正在使用 mod_write 来重写这个
www.variabledomain.variableext
到
http://my.com/variabledomain.variableext
请注意variabledomain
和variableext
确实是可变的,所以我无法对它们进行硬编码。
我不是 mod_rewrite 方面的专家,但我认为类似的东西会起作用,但事实并非如此。有什么想法我应该做什么吗?
RewriteRule ^(.*)\.(.*)\.(.*)$ http://my.com/$2\.$3 [R=301,L]
答案1
重写规则仅匹配 URL 路径,不匹配主机名。您需要使用重写条件例如
RewriteCond HTTP_HOST ([^.]+)\.([^.]+)\.([^.]+)$
RewriteRule ^/(.*) http://example.com/%2.%3/$1 [R=301,L]
Apache 文档中有更多关于如何做类似事情的优秀示例”使用 mod_rewrite 实现动态海量虚拟主机“。请特别注意右侧的“另请参阅”部分,其中有很好的例子。