Asp.net mvc 在我的MVC应用程序中添加尾部斜杠是什么? .NET 4.51、MVC 5、VS 2013、IIS Express
我正在尝试设置我的开发环境,这样当我运行项目时,它会以的形式打开,但是由于某种原因,页面会以尾部斜杠打开,即 在阅读之后,我无法使用其中关于出站重写的任何建议来消除尾随斜杠。我不使用尾随斜杠的动机是为了搜索引擎优化。我们的搜索引擎优化人员在任何情况下都不希望出现尾部斜杠Asp.net mvc 在我的MVC应用程序中添加尾部斜杠是什么? .NET 4.51、MVC 5、VS 2013、IIS Express,asp.net-mvc,iis,url-rewriting,iis-express,Asp.net Mvc,Iis,Url Rewriting,Iis Express,我正在尝试设置我的开发环境,这样当我运行项目时,它会以的形式打开,但是由于某种原因,页面会以尾部斜杠打开,即 在阅读之后,我无法使用其中关于出站重写的任何建议来消除尾随斜杠。我不使用尾随斜杠的动机是为了搜索引擎优化。我们的搜索引擎优化人员在任何情况下都不希望出现尾部斜杠 public static void RegisterRoutes(RouteCollection aRoutes) { aRoutes.IgnoreRoute("{resource}.axd/{*pathInfo}")
public static void RegisterRoutes(RouteCollection aRoutes)
{
aRoutes.IgnoreRoute("{resource}.axd/{*pathInfo}");
aRoutes.AppendTrailingSlash = false;
aRoutes.LowercaseUrls = true;
aRoutes.MapRoute("Default", "{controller}/{action}/{id}", new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
);
}
我的项目设置是:
我也尝试过以下重写规则,但没有任何区别:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<rewrite>
<rules>
<!--To always remove trailing slash from the URL-->
<rule name="Remove trailing slash" stopProcessing="true">
<match url="(.*)/$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
那么,当我打开默认路由时,如何使尾部斜线不在那里呢?所有其他路由,例如/MyRoute/最终都会按预期的方式结束,即/MyRoute。您是否验证了它不仅仅是浏览器弹出的?例如,在Chrome中,尽管我的项目url根据项目属性有一个尾随斜杠,但Chrome从不显示它。但是,如果您查看dev工具中的networkget请求,它所访问的实际url有一个。所以可能只是你的浏览器地址栏。另一方面,IE总是在我删除它时显示它。但是如果你在IE中使用F12并查看请求头的详细信息,你可以看到它没有使用GET的尾部斜杠。@rism HttpContext.request.Url显示尾部斜杠,当我查看请求时FireBug也显示尾部斜杠。
request.Url
是Uri。如果您var url=newuri(“http://www.google.com“
,并中断您将获得的http://www.google.com/
。重要的是响应标题。顺便说一句,你有没有验证过,它不仅仅是浏览器弹出它在那里?例如,在Chrome中,尽管我的项目url根据项目属性有一个尾随斜杠,但Chrome从不显示它。但是,如果您查看dev工具中的networkget请求,它所访问的实际url有一个。所以可能只是你的浏览器地址栏。另一方面,IE总是在我删除它时显示它。但是如果你在IE中使用F12并查看请求头的详细信息,你可以看到它没有使用GET的尾部斜杠。@rism HttpContext.request.Url显示尾部斜杠,当我查看请求时FireBug也显示尾部斜杠。request.Url
是Uri。如果您var url=newuri(“http://www.google.com“
,并中断您将获得的http://www.google.com/
。重要的是响应标题。顺便提一下