使用mod_rewrite屏蔽重定向到临时域
我们在companyname.com/blog上建立了一个公司博客,但目前该博客是一个安装在不同服务器(blog.companyname.com)上的Wordpress安装。
这样做的目的是在一两个月内将博客和网站都放置在同一台服务器上,但这在过渡期间造成了问题。
目前,我正在使用mod_rewrite执行以下操作:
http://companyname.com/blog/article-name重定向到http://blog.companyname.com/article-name
即使内容来自后者blog.companyname.com,我也可以以某种方式保持地址栏显示companyname.com/blog吗?
如果它在同一服务器和虚拟主机上,而不是在不同的服务器上,我可以看到如何执行此操作?
谢谢
解决方案
我们可以使用mod_proxy在companyname.com上设置反向代理,而不是使用mod_rewrite,以便将对http://companyname.com/blog/article-name的请求代理(而不是重定向)到http:// blog。 .companyname.com / article-name。
这里有更多说明和示例。
ZoneEdit具有称为webforwards的功能,该功能可能可以执行此操作并隐藏我们实际正在执行的操作(除非有人对其进行了查看)。
mod_rewrite唯一能做的就是发送HTTP标头重定向,而这些重定向(跨服务器)总是导致浏览器地址栏反映现实。
我们应该考虑编写一个"反映"博客的404脚本。从本质上讲,这将是一个透明的代理,并且已经编写了许多代理。
该脚本将查找所请求的页面(是404页)是否以http://mycompany.com/blog/开头。如果确实如此,它将下载博客页面和相关文件,然后将其发送到客户端(可能也将它们缓存)。
因此,请求http://mycompany.com/blog/article_xyz将导致404脚本下载并发送http://blog.companyname.com/article_xyz。
这可能比它值得的工作还要多,但是我们可能可以设计一个足够简单的404脚本,这值得。
-亚当