2016-04-02 68 views
0

我在我的htacces中有一些規則,通過在stackoverflow和其他網站的幫助下學習。但是現在我想添加一個規則來爲沒有後綴的網址(假裝重複的內容)添加尾部斜線,麻煩開始 - 並且發生永無止境的循環。htaccess重定向嵌套導致麻煩 - 所需的尾部斜槓

這些都是我在htacces得到了規則:

RewriteEngine on 
RewriteBase/

# redirect urls without www. to url with www. 
RewriteCond %{HTTP_HOST} ^domain\.de$ 
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301] 

# hide the suffix of urls 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.+)\.html\ HTTP/ 
RewriteRule (.*).html$ /$1 [R=301,L] 

# start redirect everything to the subfolder 
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.de [NC] 
# except these folders: 
RewriteCond %{REQUEST_URI} !^/downloads [NC] 
RewriteCond %{REQUEST_URI} !^/cms [NC] 
RewriteCond %{REQUEST_URI} !^/vorschau [NC] 

RewriteCond %{REQUEST_URI} !^/domain/.*$ 
RewriteRule ^(.*)$ /subfolder/$1 
# end redirect everything to the subfolder 

現在我想添加這個新規則添加尾隨斜線,但隨後這些嵌套規則不攜手共進!

所以www.domain.de/test應該會自動得到一個斜線。或者相反:每個帶尾部斜線的URL都應該重定向到沒有(我不知道哪個方法更好!)。

# Add a trailing slash to URLs that have none 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !(.*)/$ 
    RewriteRule ^(.*)$ http://www.domain.de/$1/ [L,R=301] 

任何人都可以幫我嗎? :) 謝謝!

回答

0

我找到了另一種方式來執行此計算器張貼一個沒有尾隨斜線政策:Htaccess: add/remove trailing slash from URL

而且此代碼的​​工作對我來說:

# To enforce a no-trailing-slash policy with subfolder 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (.+)/$ 
RewriteRule^%1 [R=301,L]