2012-12-28 92 views
0

我有几个域我想全部重写到一个域。我不希望它重定向,因为我希望URL看起来像用户输入的内容。例如,如果他们输入www.example.com我希望它从www.sample.com/default.php加载页面?从=例如国防部重写基地URL

我已经做了一点与重写,如果你有www.site.com/var1/var2使其加载www.site.com/index.php?one=var1 & 2 = VAR2

是否可以通过.htaccess文件来完成我正在寻找的内容?我试着环顾四周,不能准确地找到我要找的

感谢

回答

1

,那么你就必须依靠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,请参阅ProxyPassReverseCookieDomainProxyPassReverseCookiePath

如果你可以在虚拟主机或服务器配置中做到这一点,那么可以考虑使用ProxyPass而不是mod_rewrite。 ProxyPass指令在htaccess文件中不起作用。


编辑:

看到的一切是如何在同一文档根目录,你不需要任何代理。简单地说:

RewriteCond %{HTTP_HOST} !^www\.sample\.com$ [NC] 
RewriteCond %{HTTP_HOST} ([^.]+)\.com$ [NC] 
RewriteRule ^/?$ /default.php?from=%1 [L] 
+0

对不起工作,应该澄清,但我有所有的被托管与同根文件夹在同一台服务器上的域。我认为应该有类似的规则。谢谢! –

+0

@TroyCosentino如果它们都是相同的文档根目录,那么这将改变一切。请参阅上面的修改。 –

+0

真棒,最后一件事情..当我用我的主机设置了一个“示例”域名时,它将什么文件夹分配给我? –

0

我用网上的发电机。如果网站都托管在不同的服务器或不共享一个共同的文档根mod-rewrite

+0

并没有完全为我正在寻找 –