在重写时强制小写网址的最佳方法是什么?
一切都失败了......我做错了什么?请参阅以下内容:
Global.asax中
我不知道使用哪种方法?
void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
string path = Request.Path.ToLower();
context.RewritePath(path);
}
的web.config
我尝试过使用web.config方法但无法管理:
<rewrite url="(.*)$" to="$1" permanent="true" />
如何更改上面的代码,以便自动强制网址小写?
答案 0 :(得分:2)
答案 1 :(得分:1)
我们无法强迫your user
编写小写网址。生成的所有网址you
都可以是小写的。如果您在网址中获得大写,则可以将用户重定向到小写版本。
void Application_BeginRequest(object sender, EventArgs e)
{
string path = Request.Path;
if (ContainsUpperChars(path))
{
HttpContext.Current.Response.Redirect(Request.Path.ToLower());
}
}
bool ContainsUpperChars(string str) { some code to test for uppercase chars }
答案 2 :(得分:1)
在web.config中使用url rewrite标记。 如果vs2012无法识别该标记,请运行此页面上的脚本: http://blog.vanmeeuwen-online.nl/2013/04/visual-studio-2012-xml-intellisense-for.html 这是我用来解决问题的另外两个链接。 ScottGu'sBlog和 Meligy's Blog
<system.webServer>
<rewrite>
<rules>
<rule name="LowerCaseRule" stopProcessing="true">
<match url="[A-Z]" ignoreCase="false" />
<action type="Redirect" url="{ToLower:{URL}}" />
</rule>
</rules>
</rewrite>
</system.webServer>