【问题标题】:URL Rewriting - Append page name along with query string in URLURL 重写 - 在 URL 中附加页面名称和查询字符串
【发布时间】:2016-09-27 12:10:35
【问题描述】:

我想在我的 web.config 中添加一些 URL 重写的东西

来源网址: http://constant.com/caam/verifying/?token=kpG1TwYo2KqTS%2bKg%2fY6lVm2Gt

需要将其转换为 URL: http://constant.com/caam/verifying/default.aspx?token=kpG1TwYo2KqTS%2bKg%2fY6lVm2Gt

任何关于如何完成这个或其他建议的想法都非常感谢。

【问题讨论】:

    标签: c# asp.net iis-7


    【解决方案1】:

    IIS (web.config) 中的基本重定向规则可能如下所示:

                <rule name="Token Redirect" stopProcessing="true">
                    <match url="caam/verifying.*" />
                    <conditions trackAllCaptures="true">
                        <add input="{QUERY_STRING}" pattern="&amp;?(token=[^&amp;]+)&amp;?" />
                        <add input="{REQUEST_URI}" pattern="default.aspx" negate="true" />
                    </conditions>
                    <action type="Redirect" url="/caam/verifying/default.aspx?{C:1}" appendQueryString="false" redirectType="Found" />
                </rule>
    

    您可以更改匹配 url,但基本上这是匹配开始 caam/verifying 的所有内容。

    然后(另外)检查查询字符串的某处是否包含“token=”,并捕获其值(它将进入捕获 1,因为这里没有其他内容,例如 {C:1})。

    然后我们将重定向输出为/caam/verifying/default.aspx?{C:1}(例如,其中 {C:1} 是“token=12345”)。

    请注意,只有当 URL 匹配(caam/verifying 部分)和参数匹配(有“token=”部分)时,此规则才会被命中 - 否则此重定向规则将被跳过。

    编辑

    我添加了一个额外的“否定”规则来匹配“default.aspx”页面。

    【讨论】:

    • 我应用了这个解决方案,它正确地形成了 URL,但是当我启用这个规则时,这会给出错误 - “这个网页有一个重定向循环 ERR_TOO_MANY_REDIRECTS”
    • 查看编辑 - 我添加了一个附加条件,以便规则与 default.aspx 页面不匹配 - 我认为这导致规则之前不断匹配,所以一直返回重定向代码.
    猜你喜欢
    • 1970-01-01
    • 2021-02-04
    • 2015-01-25
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 2011-08-02
    • 2012-01-18
    • 1970-01-01
    相关资源
    最近更新 更多