什么';HTTP_URL、请求_URI和这些其他IIS变量之间的区别是什么?
我遇到了各种什么';HTTP_URL、请求_URI和这些其他IIS变量之间的区别是什么?,iis,iis-7,iis-7.5,iis-6,url-rewrite-module,Iis,Iis 7,Iis 7.5,Iis 6,Url Rewrite Module,我遇到了各种规则,并注意到有许多变量看起来是相同的。例如,它没有解释PATH\u INFO和URL之间的任何区别,它甚至没有提到REQUEST\u 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 {UNEN
规则,并注意到有许多变量看起来是相同的。例如,它没有解释PATH\u INFO
和URL
之间的任何区别,它甚至没有提到REQUEST\u 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
除了查询字符串,到目前为止我还没有发现任何其他差异。还有其他差异吗?为什么我们有多个相同值的变量?我不能完全回答你的问题(因为文档不清楚),我对此做了一些研究。以下是我对一些变量的发现: {REQUEST_URI} 返回您请求的准确URL。例如,如果根目录中有
default.aspx
文件,您将访问您的网站根目录。然后:
{REQUEST_URI}是“”
{PATH_INFO}、{HTTP_URL}、{UNENCODED_URL}是“/default.aspx”
{R:1}
返回regexp中的第一个匹配项。例如,如果您匹配的regexp是part(.*)part(.*)part(.*)
,那么您将访问url/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
您确定UNENCODED_URL
包含像%22
这样的编码字符吗?