基于url路径重定向到不同的服务器

时间:2013-11-14 15:02:59

标签: php apache url redirect path

我为一个内部网已集成到旧网站的客户建立了一个新网站。

新网站目前位于不同的服务器上,但当域A记录指向新服务器时,显然无法访问旧站点(和Intranet),但我需要保持其Intranet处于活动状态。其内部网的路径是:abc.com/intranet

有没有办法让URL路径直接指向旧服务器?例如:

abc.com - new website loads on new server

abc.com/intranet - old website loads on older server

如果不可能,我想我正在考虑在内联网的abc.com上创建一个子域。任何想法都表示赞赏。

2 个答案:

答案 0 :(得分:1)

您需要使用mod_rewrite使用Apache RewriteRule。这可以放在服务器根目录下的.htaccess文件中,也可以直接放在Apache配置文件中。

如果您想将example.com重定向到example.com/intranet,那么这是符合您需求的Apache RewriteRule

RewriteEngine on
RewriteRule ^(.*)$ /intranet [L,R=301]

这将获取此RewriteRule所放置的网站上的任何网址。将它们重定向到/intranet/intranet也可以是完整的网址,例如下面的示例:

RewriteEngine on
RewriteRule ^(.*)$ http://example.com/intranet [L,R=301]

编辑:在重新阅读您的问题时,我并非100%确定上述答案适合您。因此,我认为如果您正在描述如何将一个URL路径从一个服务器指向另一个服务器,那么您可以这样做。这将放在新服务器上:

RewriteEngine on
RewriteRule ^/intranet(.*)$ http://old_example.com/intranet [L,R=301]

这会抓取来自new_example.com/intranet的任何网址,并将其重定向到old_example.com/intranet

另一个编辑:由于原始海报表明服务器将完全更改IP,因此旧服务器的子域是最佳方式。如果将域完全切换到不同的IP,则无法按照描述的方式在一个域上重定向内容。对于您想要发生的事情,两个服务器都需要处于活动状态但不同的域名。

答案 1 :(得分:1)

abc.com/intranet是Web服务器公开的虚拟文件系统中的路径,因此无法提供来自不同Web服务器的内容。你有两个选择。

  1. 在两台服务器前放置一个反向代理,并根据原始客户端请求从服务器A或B获取内容。

  2. 如您所说,创建一个子域名,并将/ intranet重定向到新的子域名。

  3. 希望这有帮助!