【发布时间】:2012-01-27 13:26:13
【问题描述】:
我在 asp.net mvc3 上开发了一个 Web 应用程序,现在我需要制作小写的路由
示例:
that's what i have:
http://www.example.com/SubFolder/Category/Index => looks ugly :-)
that's how i would like it:
http://www.example.com/subfolder/category/index
我找到了这个帖子:
http://goneale.com/2008/12/19/lowercase-route-urls-in-aspnet-mvc/
其实我需要用到页面底部global.asax里面的代码。
protected void Application_BeginRequest(Object sender, EventArgs e)
{
string lowercaseURL = (Request.Url.Scheme + "://" +
HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.Url.AbsolutePath);
if (Regex.IsMatch(lowercaseURL, @"[A-Z]"))
{
lowercaseURL = lowercaseURL.ToLower() + HttpContext.Current.Request.Url.Query;
Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", lowercaseURL);
Response.End();
}
}
现在是问题:
什么时候在开发站上使用它是完美的,但是当我将它上传到生产环境时它无法正常工作。
在开发站上它只发布帖子,但在生产上它做了两个:
POST - status: 301 Moved Permanently
GET - status: 200 OK
而且我根本没有被重定向到正确的路线。 在开发站上它运行良好。
【问题讨论】:
-
ASP.NET URL 不区分大小写,重定向到小写 URL 的意义何在?您正在创建重定向的开销。 POST 上的重定向也将永远无法正常工作。您需要做的就是更改您的 HTML 以反映小写 URL。并且没有这样的法律,即上投网址不好,没有人看它。唯一重要的地方是 robots.txt,它区分大小写。
-
@PKKG,不,搜索引擎优化不区分大小写,而且如果引用链接有不同的大小写并重定向到不同的大小写,可能会损害搜索引擎优化,将其视为不同的词,如果它完全区分大小写的话。跨度>
-
@IamStalker :您能补充一个答案或建议吗?当您接受答案时。不幸的是,现在已删除已接受的答案
-
你想要我的问题的答案吗?
-
非常有趣的问题。您的开发 web.config 和部署 web.config 之间有任何差异吗?