asp.net连续从网址中删除反斜杠

时间:2010-10-28 02:12:20

标签: asp.net url-rewriting request.querystring

我的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}&amp;2={R:3}&amp;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

请帮助!!

1 个答案:

答案 0 :(得分:0)

您可以将正则表达式更改为以下内容:

^(Page|OtherPage).aspx(?:/+([\w-_()]+)(?:/+([\w-_() ]*)(?:/+([\w-_()]+))?)?)?$

我在“/”之后添加了一个“+”,这会将他们从接受单个“/”更改为接受一个或多个。

另外,我无法解决为什么你想要在那里有额外的斜线。可能是一个坏主意。重新考虑因为任何原因这样做。