【发布时间】:2010-10-28 02:12:20
【问题描述】:
我在我的 ASP.NET Web 应用程序中遇到了一个问题,即故意从请求 URL 中删除连续的反斜杠。
我会要求类似的东西: 本地主机/页面/A//C
但是当请求到达页面时,原始 url 是: 本地主机/页面/A/C
不确定这是否是罪魁祸首,但我确实有一个 Url Rewite 正则表达式,这是规则:
<system.webServer>
<rewrite>
<rules>
<rule name="Games QueryString">
<match url="^(Page|OtherPage).aspx(?:/([\w-_()]+)(?:/([\w-_() ]*)(?:/([\w-_()]+))?)?)?$" />
<action type="Rewrite" url="{R:1}.aspx?1={R:2}&2={R:3}&3={R:4}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
因此,重写后,查询字符串以 Page.aspx?1=A&2=C&3= 的形式出现 什么时候应该是 Page.aspx?1=A&2=&3=C
请帮忙!!
【问题讨论】:
-
为什么需要在 url 中连续使用斜杠?
-
页面后的每个组都是三部分查询字符串的一个单独部分;页/1/2/3。如果用户选择了第 1 部分和第 3 部分,则 2 应返回为空,因此 Page.aspx/a//c
标签: asp.net url-rewriting request.querystring