2010-11-12 129 views
17

我已成功修改了我的.htaccess文件以去除大多數頁面上的尾部斜線,但我想知道如何免除我的主頁/目錄?例如:使用.htaccess除去主頁/登錄頁面的尾部斜線

domain.com/test/成功地重定向到domain.com/test

然而,當我打我的域名將追加根文檔

domain.com/重定向到域。 com/index.php

是否有一個條件,我可以添加到忽略根URL跟蹤斜槓,以便它不會嘗試刪除尾部斜槓並添加我的默認腳本?這是我到目前爲止:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^(.+)/$ 
RewriteRule ^(.+)/$ /$1 [R=301,L] 

回答

29

好的。經過一系列的試驗和錯誤,我回答了我自己的問題。

第三行表示URI中必須包含某些內容才能執行重定向,因此如果url僅包含初始斜槓,則不會重定向。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} (.*)$ 
RewriteRule ^(.+)/$ http://www.domain.com/$1 [R=301,L] 
+4

而不是'http://www.domain.com/$1 '你可以更好地使用'http://www.% {HTTP_HOST}/$ 1'。因此,用戶不需要編輯該行併發生錯誤。 – 2013-09-25 07:41:19

+2

@ YH的解決方案不適用於子目錄中的網站(也不適用於本地之前不能擁有「www.」的本地主機)。所以例如'localhost/web1/page1 /'被錯誤地重定向到'www.localhost/page1'。 – 2013-11-17 16:32:51

+1

不工作的目錄 – 2013-11-18 20:12:58

9

如何

RewriteEngine On 
RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1 
17
對於除了根在 /結尾的所有URL重定向

要求:

RedirectMatch 301 ^(.+)/$ $1 
+0

也處理http/https同樣 – 2014-07-16 12:47:09

+0

非常簡單,但完美的作品。 – vee 2014-08-31 20:03:50

+0

我已將這段代碼添加到htaccess文件中。它的工作正常。 但我的css文件沒有加載。 – VijayS91 2014-12-05 12:48:37