我遇到一个问题,其中有人发布了我的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永远不会再显示文章网址中的等号。
有人可以向我解释如何创建这些重写规则吗?提前谢谢!
答案 0 :(得分:2)
你几乎没有选择:
编写您自己的提供程序,用 = 替换%3D 。
在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);
}