,那么你就必须依靠mod_proxy的,你可以使用P
重写规则标记: 使用这种生成。例如,在www.example.com
的文档根目录的htaccess文件下列规则:
RewriteCond %{HTTP_HOST} ([^.]+)\.com$ [NC]
RewriteRule ^/?$ http://www.sample.com/default.php?from=%1 [L,P]
将采取要求http://www.example.com/
,无形中代理它http://www.sample.com/default.php?from=example
。浏览器的URL地址栏将保持http://www.example.com/
。
请注意,该规则仅匹配请求URI /
。如果你想做更多的事,你必须创建正确的正则表达式和分组。
如果您在sample.com网站上有重定向,则需要使用ProxyPassReverse
来重写重定向。如果涉及到cookie,请参阅ProxyPassReverseCookieDomain
和ProxyPassReverseCookiePath
。
如果你可以在虚拟主机或服务器配置中做到这一点,那么可以考虑使用ProxyPass
而不是mod_rewrite。 ProxyPass
指令在htaccess文件中不起作用。
编辑:
看到的一切是如何在同一文档根目录,你不需要任何代理。简单地说:
RewriteCond %{HTTP_HOST} !^www\.sample\.com$ [NC]
RewriteCond %{HTTP_HOST} ([^.]+)\.com$ [NC]
RewriteRule ^/?$ /default.php?from=%1 [L]
对不起工作,应该澄清,但我有所有的被托管与同根文件夹在同一台服务器上的域。我认为应该有类似的规则。谢谢! –
@TroyCosentino如果它们都是相同的文档根目录,那么这将改变一切。请参阅上面的修改。 –
真棒,最后一件事情..当我用我的主机设置了一个“示例”域名时,它将什么文件夹分配给我? –