0

认为我有domain.com重定向到some.otherdomain.com. 我不想some.otherdomain.com向我的网站访问者显示确切的网址。我需要屏蔽我的 URL,使它看起来像domain.com 任何可能的方式?.htaccess / javascript?

4

5 回答 5

3

假设domain.comsome.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,然后将相同的数据写回,就好像它是本地数据一样。希望这可以帮助!

于 2012-04-18T21:12:42.687 回答
3

隐藏域的最佳方法是使用反向代理(apache、nginx、...)并为其提供重写规则。

于 2012-04-18T20:36:52.057 回答
1

在 domain.com 的 Apache 网络服务器上,您必须启用:

  1. mod_proxy
  2. mod_rewrite
  3. .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

于 2012-04-18T21:31:50.793 回答
1

我一直认为最好的方法是通过服务器配置(Apache 或任何使用的)中的 mod_rewrite (或类似的)来做这些事情

于 2012-04-18T20:37:49.053 回答
0

更简单的方法是在 domain.com 上设置一个带有 iframe 的页面,并将 iframe 的源设置为 some.otherdomain.com。但是,用户将能够查看页面的源代码并看到您的 iframe 指向 some.otherdomain.com。

<iframe src="http://some.otherdomain.com/">...

另一种选择是在您的 .htaccess 中使用 mod_rewrite,如该线程所示。

于 2012-04-18T20:38:55.530 回答