2017-07-25 124 views
0

我想刪除只以一些文件擴展名結尾的URL,尾部的斜槓,.txtmod_rewrite:只刪除特定文件的尾部斜槓

以下是完整的.htaccess文件:

RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} (.*)\.txt.html 
RewriteRule ^(.)\.txt.html /$1.txt [R=301,L] 

RewriteCond %{THE_REQUEST} (.)\.txt 
RewriteRule ^(.)\.txt $1.txt.html [L] 

RewriteCond %{THE_REQUEST} (.)\.txt/ 
RewriteRule ^(.*)\.txt\/ $1.txt [R=301] 

一切都很好,除了爲.txt/增加了一個完整路徑URL規則。是否有可能使它與相對路徑一起工作?

例如,這個網址

http://test.local:8080/doc/Cons/Bo/Dwnlds/Test.txt/

進入這個

http://test.local:8080/Users/dev1/Documents/96/test.org/doc/Cons/Bo/Dwnlds/Test.txt

如何解決此問題?

回答

1

您需要的領先斜線添加到您的目標爲(.*)將不包含它,因此怪異的文件系統路徑的結果:

RewriteRule ^(.*)\.txt\/ /$1.txt [R=301] 

它實際上是因爲該的RewriteRules默認如果一個文件系統路徑它存在(在你的情況下,很難判斷你的目標是URL路徑還是文件系統路徑,因爲沒有基礎文件夾)。請參閱這些文檔http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule

+0

謝謝。我會放棄並回信。 – varnie

+0

對,它取得了訣竅。 – varnie