我为一个内部网已集成到旧网站的客户建立了一个新网站。
新网站目前位于不同的服务器上,但当域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
上创建一个子域。任何想法都表示赞赏。
答案 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服务器的内容。你有两个选择。
在两台服务器前放置一个反向代理,并根据原始客户端请求从服务器A或B获取内容。
如您所说,创建一个子域名,并将/ intranet重定向到新的子域名。
希望这有帮助!