2012-11-21 210 views
0
RewriteEngine on 
RewriteRule ^$ http://my-site.com/directory [R=301,L] 

這重定向我的根頁面重寫沒有結尾斜槓的URL?

http://my-site.com/directory/ 

(注意斜線)。

如何讓.htaccess在生成URL時忽略尾部斜線?

回答

0

這是因爲directory是一個現有的目錄,這不是一個重寫的url。從noupe.com

RewriteEngine on 
RewriteRule ^$ /mypath [R=301,L] 
RewriteRule ^mypath$ /directory/ [L] 

報價: 用另一個詞來代替

您的服務器上的文件系統將始終優先於 重寫URL。例如,如果您有一個名爲「services」 的目錄,並且該目錄內有一個名爲「design.html」的文件,則不能將 的URL重定向到「http://domain.com/services」。 Apache將進入「服務」目錄並且沒有看到 重寫指令,會發生什麼情況是 。

若要解決此問題,只需重命名您的目錄(將下劃線添加到 開頭或結尾是一種簡單的方法)。

獎勵:要刪除尾隨斜線每個網址:

RewriteEngine On 
RewriteRule ^(.*)/$ $1 [R,301,L] 
+0

你能更具體的 - 它將如何尋找my-site.com? – Tool

+0

目前,你已經有了一個名爲'directory'的物理目錄。如果一個url指向這個目錄,你會有一個尾部的斜槓。 * not *的兩種方式有斜線:1 /更改重寫的url; 2 /更改你的目錄名稱。無論如何,這個RewriteRule是url和真實路徑之間的鏈接。 – zessx