分类分类
关注+2011-01-07作者:清晨
4.5RewriteCond指令
说明 | 为以下的RewriteRule定义一个条件 |
语法 | RewriteCond TestString CondPattern |
使用环境 | server config, virtual host, directory, .htaccess |
该指令为后面的RewriteRule,RewriteHeader或RewriteProxy指令规定了一个条件。一个规则指令前可以有一个或多个条件,规则只有在所有条件得到满足的情况下才被应用。
TestString附加到纯文本可以包含下列结构。
• 用语法$N回溯引用RewriteRule模式
• 用语法%N回溯引用前面的RewriteCond模式
• 用语法${mapname:key|default}扩展RewriteMap
• 用语法%{HTTP:header}指代HTTP头值
• 用语法%{NAME_OF_VARIABLE}指代服务器变量
以下是可用的服务器变量列表:
HTTP_USER_AGENT HTTP_REFERER HTTP_COOKIE HTTP_FORWARDED HTTP_HOST HTTP_PROXY_CONNECTION HTTP_ACCEPT REMOTE_ADDR REMOTE_HOST REMOTE_PORT REMOTE_USER REMOTE_IDENT REQUEST_METHOD SCRIPT_FILENAME PATH_INFO QUERY_STRING AUTH_TYPE |
DOCUMENT_ROOT SERVER_NAME SERVER_ADDR SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE API_VERSION THE_REQUEST REQUEST_URI REQUEST_FILENAME HTTPS |
TIME_YEAR TIME_MON TIME_DAY TIME_HOUR TIME_MIN TIME_SEC TIME_WDAY TIME 另外,所有的IIS特有的变量都是支持的。 |
CondPattern指定一个应用于TestString实例的正则表达式,以下特殊值也支持:
1.在正则表达式前头加“!”符号指明否定模式。
2.'<CondPattern'将CondPattern作为一个纯字符串按字典顺序比较,结果比较大
3.'>CondPattern'按字典顺序比较,结果比较小
4.'=CondPattern'按字典顺序比较,结果相等
5.'-d' 检测字符串是否存在目录。
6.'-f' 检测字符串是否存在文件。
7.'-s' 检测字符串是不是一个非零大小的文件。
8.'-l' (链接) 不支持的,始终为false。
9.'-x' (拥有可执行权限) 不支持的,始终为true。
10.'-F' (存在的文件,通过子请求) 不支持,和'–f'一样。
11.'-U' (存在的URL,通过子请求) 不支持的,始终为false。
下面的标记也是支持的:
'nocase|NC'
这个标记使模式大小写不敏感。
'ornext|OR'
这个标记用逻辑或而不是隐含的逻辑与结合子请求RewriteCond指令。
O
留用于ISAPI_Rewrite 2.x的兼容性。在处理前规范化字符串。规范化包括移除一个URL编码、错误字符,等等。同时URL的规范化将完全移除它的查询字符串。
4.6RewriteBase指令
说明 | 为每个目录的重写设置一个基准的URL |
语法 | RewriteBase URL-path |
默认值 | RewriteBase requested-directory-path |
使用环境 | directory, .htaccess |
当RewriteRule指令用于每个目录的配置文件(.htaccess)时,它将自动从路径中剥去本地目录前缀,只对剩下的部分应用规则。RewriteBase指令允许你为这些规则精确指定一个基准。比如,哪部分要被剥离。
和Apache的mod_rewrite不同,ISAPI_Rewrite的访问不仅仅针对于物理路径,同时还针对于虚拟路径,而且可以自动地选择正确的基准。所以这个指令只是为了兼容性原因而被保留的。
URL-path可以是相对于根的路径也可以是空,空的URL-path意味着规则的基准等同于网站的根目录。
相关文章
更多+相同厂商
热门推荐
点击查看更多
点击查看更多
点击查看更多
说两句网友评论