我遇到了各种<rewrite>
规则,并注意到有很多变量似乎是相同的。 IIS Server Variables documentation并没有真正帮助,例如它没有解释PATH_INFO
和URL
之间的任何差异,它甚至没有提及REQUEST_URI
等等。
{HTTP_URL} = /path/to/file.ext?key=value
{PATH_INFO} = /path/to/file.ext
{R:1} = /path/to/file.ext
{REQUEST_URI} = /path/to/file.ext?key=value
{UNENCODED_URL} = /path/to/file.ext?key=value
{URL} = /path/to/file.ext
{URL_PATH_INFO} = /path/to/file.ext
除了查询字符串之外,到目前为止我还没有找到任何其他差异。是否存在其他差异,为什么我们有多个具有相同值的变量?
答案 0 :(得分:2)
我无法完全回答你的问题(因为文档不清楚),我对此做了一些研究。以下是我对一些变量的发现:
<强> {REQUEST_URI} 强>
返回您请求的确切网址。例如,如果您在根目录中有default.aspx
文件,则您将访问您的网站根目录。然后:
{REQUEST_URI}是“”
{PATH_INFO},{HTTP_URL},{UNENCODED_URL}是“/default.aspx”
<强> {R:1} 强>
返回正则表达式中的第一个匹配项。例如,如果匹配正则表达式为part(.*)part(.*)part(.*)
,则您将访问网址/partApartBpartC
。然后:
{R:0}是“partApartBpartC”
{R:1}是“A”
{R:2}是“B”
{R:3}是“C”
<强> {UNENCODED_URL} 强>
返回原始的未编码的URL。例如,如果您将访问/"asdasd"""""asdsa
那么:
{REQUEST_URI}是/"asdasd"""""asdsa
{UNENCODED_URL}是/%22asdasd%22%22%22%22%22asdsa