2014-12-04 145 views
3

我想将“abc.aspx /”重定向到“abc.aspx”。如何才能做到这一点?从URL中删除拖尾斜杠

当请求的页面以'/'结尾时页面被破坏。如何处理这种类型的请求? 是否有任何可以添加到web.config文件中的重写规则?

回答

10

在你的web.config,下system.webServer,加

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

的一些陷阱

在你的开发环境中,如果你在Visual Studio开发Sever的运行你的网站,你会不会能够看到此功能工作。您需要将您的应用程序配置为至少在IIS Express下运行。

当您部署您的网站并看到此功能在生产服务器上无法正常工作时,这将是因为您错过了配置。其中一个常见错误是属性设置为Deny,规则在<sectionGroup name="rewrite">之下applicationHost.config文件中。

如果您处于共享主机环境,并且您看到此功能无法正常工作,请询问您的提供商是否授予您配置此部分的权限。

来源:http://www.tugberkugurlu.com/archive/remove-trailing-slash-from-the-urls-of-your-asp-net-web-site-with-iis-7-url-rewrite-module

+0

感谢,似乎是工作。遵循所有提到的步骤。但是页面的UI看起来仍然破损。不要在那里发生什么错误。 – Ashish 2014-12-04 08:54:33

+0

如果您需要其他一些问题的进一步帮助,最好打开一个新的问题,在这个问题中您尽可能描述问题。 – 2014-12-04 08:56:31

+0

谢谢,我改变了我的路由表来处理我的网站的旧网址。您的解决方案修复了我的错误,而无需更改RouteConfig.cs中的任何内容 – 2017-10-03 13:30:30