认为我有domain.com
重定向到some.otherdomain.com
. 我不想some.otherdomain.com
向我的网站访问者显示确切的网址。我需要屏蔽我的 URL,使它看起来像domain.com
任何可能的方式?.htaccess / javascript?
5 回答
假设domain.com
和some.otherdomain.com
在两个物理上不同的服务器上,并且您无法更改其中任何一个的 DNS 信息,您需要在domain.com
. 你可以用mod_proxy
这个。文档位于:
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html
以下信息是您需要注意的:
相比之下,反向代理在客户端看来就像一个普通的 Web 服务器。无需在客户端上进行特殊配置。客户端对反向代理的名称空间中的内容进行普通请求。然后反向代理决定将这些请求发送到哪里,并返回内容,就好像它本身就是源一样。
文档中有一个保留代理的示例,但您需要这样的东西:
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
,然后将相同的数据写回,就好像它是本地数据一样。希望这可以帮助!
隐藏域的最佳方法是使用反向代理(apache、nginx、...)并为其提供重写规则。
在 domain.com 的 Apache 网络服务器上,您必须启用:
- mod_proxy
- mod_rewrite
- .htaccess
完成这些要求后,将此代码放入您的 .htaccess 中的 DOCUMENT_ROOT 下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
(Proxy),它基本上会domain.com
代理所有请求some.otherdomain.com
而不在浏览器中显示它。有关此标志的更多文档,请参见此处:http ://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule
我一直认为最好的方法是通过服务器配置(Apache 或任何使用的)中的 mod_rewrite (或类似的)来做这些事情
更简单的方法是在 domain.com 上设置一个带有 iframe 的页面,并将 iframe 的源设置为 some.otherdomain.com。但是,用户将能够查看页面的源代码并看到您的 iframe 指向 some.otherdomain.com。
<iframe src="http://some.otherdomain.com/">...
另一种选择是在您的 .htaccess 中使用 mod_rewrite,如该线程所示。