Apache 的简单Rewrite
来源:互联网 发布:淘宝网消保规则 编辑:程序博客网 时间:2024/05/16 18:09
最近需要配置一个隐藏真实地址的URL转发,开始头晕脑胀的进行Rewrite的学习。这里记录下我的学习笔记。
首先需要实现单个URL的转发,这里其实不难,我一开始没有使用主机名,而是使用IP。所以直接通过一个
RewriteRule就可以实现,在实验时我将这个URL重定向到了一个固定的地址www.163.com。
RewriteRule ^/(.*)$ www.163.com/$1 [P]
这里提到了一个Rewrite关键字,这个关键字的语法为 RewriteRule Pattern Substitution [flags]。其中Pattern 表示那些URL会被匹配上这个转发策略,Substitution 表示如果URL匹配上了Pattern后,将用这个字符串替换Pattern。Pattern是一个Perl语法的正则表达式。flags是可选项的,他的意义可以在Apache模块 mod_rewrite上找到。但是我们这里其实只用到很简单的P,也就是'
proxy|P
'(强制为代理)。
所以上面的例子做出来就是:
RewtireRule 匹配的URL规则 外部转发的URL 强制为代理
这样一来客户端的地址栏不会变为Rewrite后的地址,也就是说是隐藏转发。
当我们有多个URL需要隐藏转发时,我们只需要不停的添加上面的规则就好了,不过这样也带来了一个难题,就是每次都要修改Http.conf文件,而且还需要重启Apache。所以我们需要动态的进行URL转发,这里我搞了好半天。最后觉得比较简单的方法是通过RewriteMap来实现,如果能通过MySQL实现的话,还请高手指点。
我的动态方式是通过下面的配置实现的
RewriteMap vhost txt:/etc/httpd/conf/vhost_rewrite.txt
RewriteCond ${vhost:%{HTTP_HOST}} !^$
RewriteRule ^/(.*) http://${vhost:%{HTTP_HOST}}/$1 [P,R=302,L]
然后在vhost_rewrite.txt中加入例如下面的内容
www.vhost1.com www.163.com
www.vhost2.com www.google.com
www.vhost3.com www.baidu.com
这样一来我们输入www.vhost1.com就会打开www.163.com。而浏览器的地址栏里却显示的是www.vhost1.com。
本帖是原创帖,本人也是刚刚学习Rewrite,如果有什么不对之处,还请高手指点。
好了下班了!!!!回家!!!
- Apache 的简单Rewrite
- Apache Rewrite模块的简单应用
- 强大的apache rewrite
- Apache rewrite的bug
- 虚拟主机/Apache的Rewrite
- Apache的rewrite详解
- apache的rewrite规则
- apache的rewrite
- apache的rewrite规则
- apache的rewrite功能
- Apache Rewrite url重定向功能的简单配置
- XAPMM Apache Rewrite url重定向功能的简单配置
- Apache Rewrite url重定向功能的简单配置
- Apache Rewrite url重定向功能的简单配置
- Apache Rewrite url重定向功能的简单配置
- Apache的ReWrite的应用
- Apache的ReWrite的应用
- Apache的ReWrite的应用
- 久违
- 输入法杀手病毒
- 在VC中MSFlexGrid内嵌EDIT、COMBOBOX的实现方法
- javascript动态树形结构的实现
- IfThen/IIF/Case
- Apache 的简单Rewrite
- SQLServer如何改变数据库对象所有者?
- PHP基础知识总结
- javascript实现简易计算器
- QQ等级:QQ在线等级说明
- 一个数据库完全一致恢复的测试实例
- Window Mobile 手机检测环境噪声
- 久违这咖啡的味道
- PureMVC的十个小提示