apache的rewrite模块进行rewrite的时候,需要将规则直接写到http.conf的rewrite模块中,并且规则变动一次就需要重启apache服务器一次。这个让开发者比较郁闷。这里有一个rewriteMap解决了部分的问题,他的工作就是将一个映射关系以Map的形式存储在一个文件中,我们可以通过修改这个文件的对应关系而不需要重启apache服务器就可以应用映射关系。
一般这种策略用来做虚拟主机销售的时候使用,将域名绑定到指定的目录上,现在我将这个拓展下,不单单可以将指定的域名绑定到某个目录,还可以将域名动态的rewrite
操作步骤
1、先进行本地hosts表的配置,方便测试
2、打开apache的rewrite的引擎,然后进行规则的配置
3、看下我们的vhost.map的内容,格式是“字符串+空格+字符串”
4、查看效果
敲击如下链接查看效果,以下的链接是基于host的配置
(4)、http://aaa.honghu.com/chat
5、以上使用的都是直接重定向,如果想让浏览器上的链接达到不变动就能将页面显示出来,可以先开启apache的proxy代理,然后使用强制代理的标记
(1)、开启apache的代理
(2)、强制代理的url重写规则
(3)、重新访问上边的url,感受下无重定向的快乐吧
(4)、如果你强制代理的url和当前浏览器的url没指向同一个机器,痛苦随之而来,你会发现被代理的也没上的图片链接以及url链接很多都以你浏览器上的url开头,这些链接显示不了或者不可用。唯一的解决办法就是将所有被代理服务器上的规则都给代理了