认为我有domain.com
重定向到some.otherdomain.com
。我不想向我的网站访问者显示确切的网址some.otherdomain.com
。我需要屏蔽我的 URL,以便它看起来像domain.com
有什么可能的方法吗?.htaccess/javascript?
隐藏域的最佳方法是使用反向代理(apache,nginx等)并为其提供重写规则。
假设domain.com
和some.otherdomain.com
位于两台物理上不同的服务器上,并且您无法更改其中任何一台的DNS信息,则需要在domain.com
上安装反向代理。 您可以使用mod_proxy
。 文档位于:
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html
您需要注意以下信息:
相比之下,反向代理对客户端来说就像一个 普通网络服务器。客户端上没有特殊配置 必要。客户端对 反向代理的名称空间。然后,反向代理决定在何处 发送这些请求,并返回内容,就好像它是它本身一样 起源。
文档中有一个保留代理的示例,但您需要如下所示的内容:
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://some.otherdomain.com/
ProxyPassReverse / http://some.otherdomain.com/
基本上,域中的任何请求都将代理到some.otherdomain.com
- 本地Web服务器将转发请求,缓冲来自otherdomain.com
的数据,然后将相同的数据写回本地数据。 希望这有帮助!
我一直认为最好的方法是通过服务器配置中的mod_rewrite(或类似)来做这些事情(Apache或任何使用的东西)
在 domain.com 的 Apache Web 服务器上,您必须启用:
- mod_proxy
- mod_rewrite
- .htaccess
完成这些要求后,请将此代码放入您的 .htaccess 中,DOCUMENT_ROOT of domain.com
:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www'.)?domain'.com$ [NC]
RewriteRule ^ http://some.otherdomain.com%{REQUEST_URI} [L,P]
这里的重要标志是P
(代理),它基本上domain.com
代理所有some.otherdomain.com
请求,而不会在浏览器中显示它。有关此标志的更多文档,请参阅此处:http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule
方法是在 domain.com 上设置一个带有 iframe 的页面,并将 iframe 的源设置为 some.otherdomain.com。 但是,用户将能够查看页面的源代码,并看到您的 iframe 指向 some.otherdomain.com。
<iframe src="http://some.otherdomain.com/">...
另一种选择是在 .htaccess 中使用mod_rewrite,如此线程所示。