【发布时间】:2015-07-15 04:09:54
【问题描述】:
我正在维护一个现有的 ASP.NET Webforms 应用程序。出现了一个问题,我们现在需要保证从所有 URL 中删除尾部斜杠
https://www.example.com/blah.aspx --> https://www.example.com/blah.aspx
https://www.example.com/blah --> https://www.example.com/blah
https://www.example.com/blah/ --> https://www.example.com/blah
https://www.example.com/blah/?a=1 --> https://www.example.com/blah?a=1
现在这是一个已经存在多年的应用程序,并且 URL 是在代码后面或直接在 aspx 文件中构建的 - 基本上无处不在。此外,虽然是一个 ASPX 应用程序,但它被配置为使用System.Web.Routing 进行路由。所以我们可能还有:
定义中没有斜杠
aRoutes.MapPageRoute("routeBrandsCamp",
"brand/{name}/camp",
"~/Pages/Brand/Camp.aspx", true, new RouteValueDictionary
{
{"name", " "}
});
aRoutes.MapPageRoute("routeBrandsSummary",
"brand/{name}/summary/",
"~/Pages/Brand/Summary.aspx", true, new RouteValueDictionary
{
{"name", " "}
});
那么解决方案似乎是我需要在 IIS 中添加一个重写规则,或者我应该在BeginRequest() 中做些什么?
无论解决方案如何,您还可以提供一个可行的示例吗?例如。 IIS重写规则,一些代码等
基本上我想在一个地方改变它而不破坏应用程序;-)
【问题讨论】:
-
是否要从 URL 末尾删除正斜杠?
-
是的......你看到我提供的网址列表了吗?