我遇到了各种<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
除了查询字符串,到目前为止我还没有发现任何其他差异。是否有其他差异,为什么我们有多个具有相同值的变量?
最佳答案
我无法完全回答您的问题(因为文档不清楚),我对此进行了一些研究。以下是我对一些变量的发现:
{REQUEST_URI}
返回您请求的确切 URL。例如,如果您有 default.aspx
根目录中的文件,您将访问您的网站根目录。然后:
{REQUEST_URI} 是“”
{PATH_INFO}、{HTTP_URL}、{UNENCODED_URL} 是“/default.aspx”
{R:1}
返回正则表达式中的第一个匹配项。例如,如果匹配正则表达式为 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
关于iis - HTTP_URL、REQUEST_URI 和这些其他 IIS 变量之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48076834/