我的ASP.NET网络应用中存在一个问题,即从请求网址中删除了故意连续的反斜杠。
我会请求类似的东西: 本地主机/页/ 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&amp; 2 = C&amp; 3 = 什么时候应该是Page.aspx?1 = A&amp; 2 =&amp; 3 = C
请帮助!!
答案 0 :(得分:0)
您可以将正则表达式更改为以下内容:
^(Page|OtherPage).aspx(?:/+([\w-_()]+)(?:/+([\w-_() ]*)(?:/+([\w-_()]+))?)?)?$
我在“/”之后添加了一个“+”,这会将他们从接受单个“/”更改为接受一个或多个。
另外,我无法解决为什么你想要在那里有额外的斜线。可能是一个坏主意。重新考虑因为任何原因这样做。