mod_rewrite模块详解
2008-10-23 00:00:00 来源:WEB开发网'nocase|NC' (no case)
它使测试忽略大小写, 即, 扩展后的TestString和CondPattern中, 'A-Z' 和'a-z'是没有区别的。此标记仅作用于TestString和CondPattern的比较, 而对文件系统和子请求的测试不起作用。
'ornext|OR' (or next condition)
它以OR方式组合若干规则的条件,而不是隐含的AND。典型的例子如下:
RewriteCond %{REMOTE_HOST} ^host1.* [OR]
RewriteCond %{REMOTE_HOST} ^host2.* [OR]
RewriteCond %{REMOTE_HOST} ^host3.*
RewriteRule ...some special stuff for any of these hosts...
如果不用这个标记,则必须使用三个 条件/规则。
举例:
如果要按请求头中的``User-Agent:'重写一个站点的主页,可以这样写:
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^/$ /homepage.max.html [L]
RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
RewriteRule ^/$ /homepage.min.html [L]
RewriteRule ^/$ /homepage.std.html [L]
含义: 如果你使用的浏览器是Netscape Navigator(其识别标志是'Mozilla'), 则你将得到内容最大化的主页,包括Frames等等; 如果你使用的是(基于终端的)Lynx,则你得到的是内容最小化的主页,不包含tables等等; 如果你使用的是其他的浏览器,则你得到的是一个标准的主页。
RewriteEngine 指令
RewriteEngine指令打开或关闭运行时刻的重写引擎。 如果设置为off,则mod_rewrite模块不执行任何运行时刻的重写操作, 甚至也不更新SCRIPT_URx环境变量。
使用该指令可以使mod_rewrite模块无效,而无须注释所有的RewriteRule指令!
更多精彩
赞助商链接