【问题标题】:How to exclude a URL from being rewritten by .Net Intelligentia Rewriter如何排除 URL 被 .Net Intelligentia Rewriter 重写
【发布时间】:2017-11-02 06:47:57
【问题描述】:

我有一个 Webforms ASP.Net 应用程序,它已经为 url 重写定义了多个规则并且它们正在工作。该应用程序使用 Intelligencia URl Rewriter,遗憾的是它没有任何在线/离线文档。

由于这些规则之一,对任何 aspx 文件的请求都会被重定向到 default.aspx,这适用于所有情况,除非 aspx 为 Telerik.Web.UI.DialogHandler.aspx

我尝试在重写器配置中使用以下配置来不重写包含 Telerik.Web.UI.DialogHandler.aspx 的 url,但它不起作用。

问题

如何将包含 Telerik.Web.UI.DialogHandler.aspx 的 url 排除在 Url Rewriter 处理的范围之外?

下面的配置是为了排除一个 url 但它不起作用

<rewrite url="^(.+)?Telerik.Web.UI.DialogHandler\.aspx(\?(.+))?$" to="$1" 
 processing="stop" />

当 url 包含 Telerik.Web.UI.DialogHandler.aspx 时,现有规则导致重写,此规则如下。

<if url="^((?!\.ashx|\.asmx|\.axd|\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js|install|error|auth\.aspx|default\.aspx|popup\.aspx|advanced\.aspx|digest\.aspx|ftb.imagegallery\.aspx|ckfinder).)*$">
    <rewrite url="^~/(.+)?\?(.+)?$" to="~/Default.aspx?g=$1&amp;$2" processing="stop" />
    <rewrite url="^~/(.+)?\.aspx$" to="~/Default.aspx?g=$1" processing="stop" /> 
    <rewrite url="^~/(.+)?$" to="~/Default.aspx?g=$1" processing="stop" />
</if>

【问题讨论】:

    标签: c# asp.net url-rewriting telerik


    【解决方案1】:

    我终于找到了答案。

    要排除包含字符串 Telerik.Web.UI.DialogHandler.aspx 的 URL,必须将以下重写规则作为第一条规则放置在重写 URL 配置部分中。

     <rewrite url="^(/.*(Telerik\.Web\.UI\.DialogHandler\.aspx)(\?.*)?)$" 
        to="$1" processing="stop" />
    

    将其作为第一条规则很重要,这样可以完全消除任何现有规则应用于此 URL 的可能性。用于 to 属性的$1 确保使用原始 URL 作为 to 属性的值。

    【讨论】:

    猜你喜欢
    • 2012-12-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 2013-02-27
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多