iis - HTTP_URL、REQUEST_URI 和这些其他 IIS 变量之间有什么区别?

标签 iis iis-7 iis-7.5 iis-6 url-rewrite-module

我遇到了各种<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/

相关文章:

IIS 7 URL 重写规则似乎只工作一次

configuration - 无法读取配置文件,因为它超过了最大文件大小

iis-7.5 - IIS 7.5,应用程序池不在 applicationHost.config 中

IIS 7.5 连接问题

c# - Asp.net mvc Sp​​ecified UserAgent no session Id

asp.net - IIS 配置 - ASP.NET MVC 返回所有请求的默认文档

asp.net - 在 IIS7 中配置 ASP.NET

asp.net - web.config部分的单独配置文件

php - 无法在 IIS 上设置 upload_tmp_dir

asp.net - ASP.NET MVC 5 中的自定义文件夹结构