如何以小写显示网址?

时间:2011-08-10 11:21:03

标签: c# asp.net iis url-rewriting webforms

我有一个webforms项目,其中大写的URL被返回给客户端:

http://www.looknbook.com/Packages/Forms/package_search.aspx

要求是将URL显示为小写:

http://www.looknbook.com/packages/forms/package_search.aspx

如何在ASP.NET Webforms中以小写形式将URL发送到客户端的浏览器?

3 个答案:

答案 0 :(得分:5)

对于IIS7,您可以使用URI Rewrite并使用示例here

<rule name="Convert to lowercase" stopProcessing="true">  
    <match url=".*[A-Z].*" ignoreCase="false" />  
    <action type="Redirect" url="{ToLower:{R:0}}" redirectType="Permanent" />
</rule>

答案 1 :(得分:2)

经典ASP .NET路径对应于文件夹名称,文件夹在Windows中不区分大小写 因此,小写和大写的URL都可用于访问您的网站。

您在地址栏中看到大写网址的唯一原因是链接大写。将网站上的所有链接更改为小写,就是这样。

如果你还想强制小写(即即使用户输入大写的URL也改为小写),你需要进行URL重写,但具体的解决方案取决于你的IIS版本'正在使用。

答案 2 :(得分:0)

如果你想通过在Application_BeginRequest或global.cs页面的Application_EndRequest中实现以下代码来实现代码站点的小写URL,那么

            var curenturl = Request.Url.ToString();           
            if (Regex.IsMatch(curenturl, @"[A-Z]"))
            {
                Response.Clear();
                Response.Status = "301 Moved Permanently";
                Response.StatusCode = 301;
                Response.AddHeader("Location", curenturl.ToLower());
                Response.End();
            }