什么是在我的MVC应用程序中添加尾部斜杠?

时间:2015-08-06 02:04:08

标签: asp.net-mvc iis url-rewriting iis-express

  • .NET 4.51,MVC 5,VS 2013,IIS Express

我正在尝试设置我的开发环境,这样当我运行项目时它会打开为 https://localhost:44300 ,但由于某种原因,页面打开时带有斜杠,即 https://localhost:44300/

阅读Remove Trailing Slash in ASP.NET MVC 4 Route to Application Root后,我无法使用其中的任何建议进行出站重写,以使尾随斜杠消失。我没有尾随斜线的动机是出于搜索引擎优化的目的。我们的搜索引擎优化人员在任何情况下都不需要斜杠。

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
                                                              }
        );
}

我的项目设置是:

enter image description here enter image description here

我也尝试过以下重写规则,但它没有任何区别:

<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。

0 个答案:

没有答案