2

我遇到了一个问题,有人为我的 asp.net mvc3 网站发布了一个 URL,该 URL 在我的 id 参数之后包含 %3D 而不是等号,如下所示:http ://ultimategamedb.com/Article/Article?id%3D398210c1- 529e-4909-9793-a11b8a832dcc。我尝试了各种重写规则,但似乎无法正确重写 URL:http ://ultimategamedb.com/Article/Article?id=398210c1-529e-4909-9793-a11b8a832dcc 。这是一个问题,因为带有 %3D 的 URL 给出了 404 错误。如果可能的话,我想创建一个规则,将使用 % 编码的任何 URL 重写为正确的解码值。如果这不可能,我只想知道如何重写我的文章 URL,以确保 %3D 永远不会再次出现在文章 URL 中的等号中。

谁能向我解释我将如何创建这些重写规则?提前致谢!

4

1 回答 1

2

你有几个选择:

  1. 编写您自己的提供程序,它将%3D替换为=

    参考:http ://www.iis.net/learn/extensions/url-rewrite-module/developing-a-custom-rewrite-provider-for-url-rewrite-module

  2. Application_BeginRequest中,替换您的路径:

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        string path = HttpContext.Current.Request.Url.PathAndQuery;
    
        // Search for %3D and replace.
        path = path.Replace("%3D","=");
    
        HttpContext.Current.RewritePath(path);
    }
    
于 2013-10-25T18:35:01.357 回答