日期:2014-05-16  浏览次数:20943 次

Apache的mod_rewrite简单使用
Mod_rewrite的主要配置也就以下几行:
//组件开关
RewriteEngine on
//必须满足的条件
RewriteCond %{REMOTE_ADDR} !^192.168.0.*$
//满足条件后执行的动作
RewriteRule ^/login.html /index.html [R=301,L]
//日志记录地址
RewriteLog "/usr/apache2/logs/rewrite.log"
//日志级别
RewriteLogLevel 3

RewriteCond:重定向条件
在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这些条件也满足时规则才被应用于当前URL处理。
比如:RewriteCond %{REMOTE_ADDR} ^192.168.0.*$
当请求IP地址来源是192.168.0开头的内网地址才满足条件

RewriteRule表示将符合条件的页面按照最后面的方式响应。
R(redirect)=301表示永久重定向到指定页面/index.html
L(last)表示立即停止重写操作,并不再应用其他重写规则。
详细参数可以去官方文档查询
http://httpd.apache.org/docs/current/mod/mod_rewrite.html

RewriteLogLevel默认是0,数值越大,代表输出越详细,一般3以上都是调试用。
注意:数值大的话会严重影响apache的性能。