在ASP.NET和IIS7.5中允许路径中的加号

时间:2013-09-04 23:22:07

标签: asp.net iis-7.5

我有一个ASP.NET Web Forms网站,它使用.NET 4路由来处理自定义URL。

我们组织中的某个人决定在其中刊登带加号的网址(例如www.domain.com/this+that),所以现在我不得不修改系统以识别此网址并将其路由到正确的页面。

这是在IIS7.5上运行的.NET 4.0网站。

我已经研究过如何做到这一点,并且建议将以下内容添加到我的web.config文件中,我已经完成了。但我仍然收到IIS 404错误消息,它甚至没有进入我的自定义404错误页面。

<system.webServer>
  <security>
    <requestFiltering allowDoubleEscaping="true">
    </requestFiltering>
  </security>
</system.webServer>

知道为什么这不起作用吗?

1 个答案:

答案 0 :(得分:2)

我只能根据个人经验说话,但请尝试其中一种:

MVC:

    [ActionName("this+that")]
    public ActionResult ThisThat()
    {
        return View("ThisThat");
    }

web.config重定向:

<location path="this+that">
<system.webServer>
<httpRedirect enabled="true" destination="www.domain.com/this_that" httpResponseStatus="Permanent" />
</system.webServer>
</location>

更新: 努力工作。确保web.config看起来像这样:

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>
    <system.webServer>
        <security>
            <requestFiltering allowDoubleEscaping="true" />
        </security>
    </system.webServer>

Global.asax应如下所示:

    protected void RegisterRoutes(RouteCollection routes)
    {
        routes.MapPageRoute("Test", "This+That", "~/Test.aspx");

    }