我有一个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发送到客户端的浏览器?
答案 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();
}