2011-11-05 118 views
0

我想小寫URL並在其末尾添加一個斜槓。 例如ASP.NET MVC 3和URL重寫

mydomain.com/About -> mydomain.com/about/ 
mydomain.com/about -> mydomain.com/about 

原因是因爲Google Analytics將所有這些網址視爲完全不同。
我有以下重寫規則內的web.config:

<rewrite> 
    <rules> 
     <rule name="Redirect mydomain.com to www" patternSyntax="Wildcard" stopProcessing="true"> 
      <match url="*" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="mydomain.com" /> 
      </conditions> 
      <action type="Redirect" url="http://www.mydomain.com/{R:0}" /> 
     </rule> 
    </rules> 
</rewrite> 

任何幫助將不勝感激!

+0

我不記得這個關於我頭頂的語法,但我想指出,在MVC3中,如果您使用Url.Action或Url.Route方法,它們將不會創建帶/ case/slash的URL東西照顧,所以每個鏈接點擊將導致重定向,這是不好的。我過去解決這個問題的方式是實際編寫一個自定義的路由實現,使得我所有的路由URL都變得友好,如果不是,我們可以使用它。 –

+0

如果出現404錯誤,那些重定向也會導致誤報,因爲它們的響應將是第一次請求中的301,然後是第二次中的404,從而對您的服務器造成不必要的請求。 –

回答

0

您可以使用以下博文中的代碼強制小寫路由:Force MVC Route URL to Lowercase

如果需要結尾斜槓,可以通過添加第二個類(例如LowerCaseRouteWithTrailingSlash)來修改代碼,並更改代碼以檢查尾部斜線,如果需要則添加一個斜槓。