调试URL重写规则

时间:2014-08-22 08:54:18

标签: asp.net debugging iis url-rewriting web-config

这是我的问题。 有复杂的规则,我找不到某个URL的匹配规则。 是否有工具可以显示与特定网址匹配的规则?

调试此类案例花费了太多时间,因此我正在寻找一些可以帮助我的工具。

PS我调试了这个例子,所以在这个具体的例子中不需要帮助。 如果我可以复制这个XML规则并给出URL并且结果将显示" New2"那将是很好的。匹配。

这是web.config规则的示例

<rules>
            <rule name="Mobile">
                <match url="^mobile$" ignoreCase="false" />
                <action type="Rewrite" url="mobile.aspx" />
            </rule>
            <rule name="Print rule">
                <match url="^([A-Za-z0-9/_-]+)/print$" ignoreCase="false" />
                <action type="Rewrite" url="print.aspx?url={R:1}" appendQueryString="true" />
            </rule>
             <rule name="New paging1">
                <match url="^([A-Za-z0-9/_-]+)/([A-Za-z0-9/_-]+)/([0-9]+)/page/([0-9]+)$" ignoreCase="false" />
                <action type="Rewrite" url="default.aspx?parent={R:1}&amp;url={R:2}&amp;godina={R:3}&amp;page={R:4}" appendQueryString="false" />
            </rule>
            <rule name="New paging2">
                <match url="^([A-Za-z0-9/_-]+)/([0-9]+)/page/([0-9]+)$" ignoreCase="false" />
                <action type="Rewrite" url="default.aspx?url={R:1}&amp;godina={R:2}&amp;page={R:3}" appendQueryString="false" />
            </rule>

             <rule name="Page rule 1">
                <match url="^([A-Za-z0-9/_-]+)/([A-Za-z0-9/_-]+)/page/([0-9]+)$" ignoreCase="false" />
                <action type="Rewrite" url="default.aspx?parent={R:1}&amp;url={R:2}&amp;page={R:3}" appendQueryString="false" />
            </rule>

            <rule name="Page rule">
                <match url="^([A-Za-z0-9/_-]+)/page/([0-9]+)$" ignoreCase="false" />
                <action type="Rewrite" url="default.aspx?url={R:1}&amp;page={R:2}" appendQueryString="true" />
            </rule>
             <rule name="New">
                <match url="^([A-Za-z0-9/_-]+)/([A-Za-z0-9/_-]+)/([0-9]+)$" ignoreCase="false" />
                <action type="Rewrite" url="default.aspx?parent={R:1}&amp;url={R:2}&amp;godina={R:3}" appendQueryString="false" />
            </rule>

             <rule name="New2">
                <match url="^([A-Za-z0-9/_-]+)/([0-9]+)$" ignoreCase="false" />
                <action type="Rewrite" url="default.aspx?url={R:1}&amp;godina={R:2}" appendQueryString="false" />
            </rule>

             <rule name="rule 1">
                <match url="^([A-Za-z0-9/_-]+)/([A-Za-z0-9_-]+)$" ignoreCase="false" />
                <action type="Rewrite" url="default.aspx?parent={R:1}&amp;url={R:2}" appendQueryString="true" />
            </rule>
            <rule name="Glavni rule 2">
                <match url="^([A-Za-z0-9/_-]+)$" ignoreCase="false" />
                <action type="Rewrite" url="default.aspx?url={R:1}" appendQueryString="true" />
            </rule>


 </rules>

3 个答案:

答案 0 :(得分:0)

您可以使用失败的请求跟踪。它对我很有帮助。 This文章描述了如何在url重写中使用它。使用IE查看日志文件。

由于

enter image description here

答案 1 :(得分:0)

This是我在谷歌搜索后发现的。 我看起来很穷但为我工作......

答案 2 :(得分:0)

您可以在IIS管理器中测试规则,这非常简单。简而言之:

  • 打开您的IIS管理器,单击所需的网站
  • 在中央窗格中的“ IIS”块中,双击“ URL Rewrite”图标-您将看到在web.config规则中创建的列表(或为空 列出它们是否不存在)
  • 选择要测试的规则,在“入站规则”块的右窗格中找到“编辑”按钮
  • 将打开“编辑入站规则”页面,找到“测试模式”按钮并按下
  • 在这里您可以在“输入要测试的数据”字段(已填写“模式”字段)中输入不同的url,然后单击“测试”按钮进行检查 网址上的表达式,结果将显示在下面。

此处的完整手册https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/testing-rewrite-rule-patterns