使用%3D重写URL链接的IIS URL

时间:2013-10-23 00:50:38

标签: asp.net asp.net-mvc-3 iis url-rewriting rewrite

我遇到一个问题,其中有人发布了我的asp.net mvc3网站的网址,其中包含%3D而不是等号,我的id参数如下: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重写为正确的解码值。如果这是不可能的,我只想知道如何重写我的文章网址,以确保%3D永远不会再显示文章网址中的等号。

有人可以向我解释如何创建这些重写规则吗?提前谢谢!

1 个答案:

答案 0 :(得分: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);
    }