我在一个项目中使用 Intelligencia UrlRewriter。
重写输入浏览器的 url 工作正常。
例如,如果我输入
http://localhost/People
这被正确地重写为:
http://localhost/People.aspx
现在,问题是,当我在后面的代码中时,我需要访问友好的 URL,但 Request.ServerVariables 似乎只有不友好的 URL 可用。
有谁知道我是否可以在代码中访问这个原始的、友好的 URL?还是我太晚了?
我在一个项目中使用 Intelligencia UrlRewriter。
重写输入浏览器的 url 工作正常。
例如,如果我输入
http://localhost/People
这被正确地重写为:
http://localhost/People.aspx
现在,问题是,当我在后面的代码中时,我需要访问友好的 URL,但 Request.ServerVariables 似乎只有不友好的 URL 可用。
有谁知道我是否可以在代码中访问这个原始的、友好的 URL?还是我太晚了?
明白了,伙计们。
@Nick Allen 和 Pure.Krome:感谢您的帮助!!
我在以下位置找到了一条数据:
HttpContext.Current.Request.RawUrl
如果它存在于 ServerVariables 中,我看不到它,但总而言之,数据在那里,所以我不必哭着睡觉 :)
好的。再次感谢!!
Request.PathInfo
Request.QueryString
您使用哪一个取决于您是否重写default.aspx?myvar或default.aspx/myvar
我正在使用它,并且已经使用了 .. er .. 2 年了,我想。(感谢 gawd IIS7 和 MVC 在这里!)
无论如何,你可以检查所有这些的IIS 服务器变量并告诉我们你得到了什么......
例如(这是我设置的页面的 PATH_INFO 片段,它转储所有请求变量):-
PATH_INFO:[/admin/Miscellaneous.aspx]
并得到它..
Request.ServerVariables["PATH_INFO"]
随时通知我们。
Intelligencia 重写规则存储在可解析的 web.config 中。因此,您可以遍历 web.config 中的规则以找到匹配项并从那里使用匹配的值
显然,这不适用于模式匹配,只是显式规则,例如您的示例中的规则