服务器伪静态参数解析

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule . - [NC,L]
RewriteRule . index.php [NC,L]


RewriteCond表示在什么条件下才重写,符合条件才执行RewriteRule。

RewriteRule表示按照什么规则进行重写


语法: RewriteCond TestString CondPattern [flags]

‘-d’ (是否为目录) 将testString当作一个目录名,检查它是否存在以及是否是一个目录。

‘-f’ (是否是regular file) 将testString当作一个文件名,检查它是否存在以及是否是一个regular文件。

‘-s’ (是否为长度不为0的regular文件) 将testString当作一个文件名,检查它是否存在以及是否是一个长度大于0的regular文件。

‘-l’ (是否为symbolic link) 将testString当作一个文件名,检查它是否存在以及是否是一个 symbolic link。

‘-F’ (通过subrequest来检查某文件是否可访问) 检查TestString是否是一个合法的文件,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能。

‘-U’ (通过subrequest来检查某个URL是否存在) 检查TestString是否是一个合法的URL,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能。






Rewrite作为 Web 服务器的核心功能之一,提供了通过正则表达式与请求路径的匹配,同时还提供了一个系统级变量供调用,本篇文章主要介绍Apache 中Rewrite模块的服务器变量信息,



Apache提供给rewirte模块的环境变量大概分成5个类型. 下面一一说明.以下列表传于apache官方文档.


第一部分: HTTP headers 部分参数


参数名称: HTTP_USER_AGENT
样例参考值: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8
说明: 相当于PHP中的服务器参数: $_SERVER["HTTP_USER_AGENT"]


参数名称: HTTP_REFERER
样例参考值: http://www.test.cn/test.php
说明: 相当于PHP中的服务器参数: _SERVER["HTTP_REFERER"]


参数名称: HTTP_COOKIE
样例参考值: ZDEDebuggerPresent=php,phtml,php3
说明: 相当于PHP中的服务器参数: $_SERVER["HTTP_COOKIE"]


参数名称: HTTP_FORWARDED
样例参考值: 如果使用代理服务器的话会是代理服务器的IP地址, 本地不容易搭环境测试出值来.
说明: 相当于PHP中的服务器参数: $_SERVER["HTTP_FORWARDED"]


参数名称: HTTP_HOST
样例参考值: www.test.com
说明: 相当于PHP中的服务器参数: $_SERVER["HTTP_HOST"]


参数名称: HTTP_PROXY_CONNECTION
样例参考值: 网络连接代理方面的信息. 和HTTP_FORWARDED参数一样. 本地不容易搭环境测试出值来.
说明: PHP中貌似未提供这样的服务器信息值. 如果又的话可能等值于: $_SERVER["HTTP_PROXY_CONNECTION"]


参数名称: HTTP_ACCEPT
样例参考值: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
说明: 相当于PHP中的服务器参数: $_SERVER["HTTP_ACCEPT"]


第二部分: server internals 部分参数


参数名称: DOCUMENT_ROOT
样例参考值: C:/webRoot/t
说明: 相当于PHP中的服务器参数: $_SERVER["DOCUMENT_ROOT"]


参数名称: SERVER_ADMIN
样例参考值: youemailaddress@gmail.com
说明: 相当于PHP中的服务器参数: $_SERVER["SERVER_ADMIN"]


参数名称: SERVER_NAME
样例参考值: www.test.com
说明: 相当于PHP中的服务器参数: $_SERVER["SERVER_NAME"]


参数名称: SERVER_ADDR
样例参考值: 127.0.0.1
说明: 相当于PHP中的服务器参数: $_SERVER["SERVER_ADDR"]


参数名称: SERVER_PORT
样例参考值: 80
说明: 相当于PHP中的服务器参数: $_SERVER["SERVER_PORT"]


参数名称: SERVER_PROTOCOL
样例参考值: HTTP/1.1
说明: 相当于PHP中的服务器参数: $_SERVER["SERVER_PROTOCOL"]


参数名称: SERVER_SOFTWARE
样例参考值: Apache/2.2.11 (Win32) PHP/5.2.9-1
说明: 相当于PHP中的服务器参数: $_SERVER["SERVER_SOFTWARE"]


第三部分: connection & request 部分参数


参数名称: REMOTE_ADDR
样例参考值: 127.0.0.1 正在浏览当前页面用户的 IP 地址。
说明: 相当于PHP中的服务器参数: $_SERVER["REMOTE_ADDR"]


参数名称: REMOTE_HOST
样例参考值: 127.0.0.1 正在浏览当前页面用户的主机名。反向域名解析基于该用户的 REMOTE_ADDR
说明: 相当于PHP中的服务器参数: $_SERVER["REMOTE_HOST"]


参数名称: REMOTE_PORT
样例参考值: 2574 (变化的值)用户连接到服务器时所使用的端口
说明: 相当于PHP中的服务器参数: $_SERVER["REMOTE_PORT"]


参数名称: REMOTE_USER
样例参考值: 空
说明: PHP 好像未提供相关的$_SERVER值.


参数名称: REMOTE_IDENT
样例参考值: 空
说明: PHP 好像未提供相关的$_SERVER值.


参数名称: REQUEST_METHOD
样例参考值: GET
说明: 相当于PHP中的服务器参数: $_SERVER["REQUEST_METHOD"]


参数名称: SCRIPT_FILENAME
样例参考值: C:/webRoot/t/share77.html
说明: 相当于PHP中的服务器参数: $_SERVER["SCRIPT_FILENAME"]


参数名称: PATH_INFO
样例参考值: 空
说明: 相当于PHP中的服务器参数: $_REQUEST["PATH_INFO"]


参数名称: QUERY_STRING
样例参考值: a=b&c=d&e=f
说明: 相当于PHP中的服务器参数: $_SERVER["QUERY_STRING"]


参数名称: AUTH_TYPE
样例参考值: 空 当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个是认证的类型
说明: 相当于PHP中的服务器参数: $_SERVER["AUTH_TYPE"]


第四部分: date and time 部分参数


参数名称: TIME_YEAR
样例参考值: 2009
说明: 服务器获取当前的年份值


参数名称: TIME_MON
样例参考值: 04
说明: 服务器获取当前的月份值


参数名称: TIME_DAY
样例参考值: 22
说明: 服务器获取当前的日值


参数名称: TIME_HOUR
样例参考值: 16
说明: 服务器获取当前时间的小时


参数名称: TIME_MIN
样例参考值: 26
说明: 服务器获取当前时间的分钟


参数名称: TIME_SEC
样例参考值: 34
说明: 服务器获取当前时间的秒


参数名称: TIME_WDAY
样例参考值: 3
说明: 服务器获取当天是星期几, 从星期日-星期六, 数字从 0-6


参数名称: TIME
样例参考值: 20090422162634
说明: 服务器获取当前的时间, 格式为: 年月日时分秒


第四部分: specials 部分参数


参数名称: API_VERSION
样例参考值: 20051115:21
说明: apache 的 API 版本信息.


参数名称: THE_REQUEST
样例参考值: GET /share77.html HTTP/1.1
说明: 浏览器发给服务器的请求值. 不包括其他的头信息.


参数名称: REQUEST_URI
样例参考值: /share77.html
说明: 浏览器请求的资源信息.


参数名称: REQUEST_FILENAME
样例参考值: C:/webRoot/t/share77.html
说明: 被请求的资源的在磁盘的物理地址.


参数名称: IS_SUBREQ
样例参考值: false
说明: 如果是 sub-request 则显示为 true, 否则为 false.


参数名称: HTTPS
样例参考值: off
说明: 如果连接使用 SSL/TLS 模式, 则值为on , 否则值为off, 这个参数比较安全, 即使未载入 mod_ssl 模块时.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值