2013-11-01 72 views
2

行爲

如果我去:http://localhost/login
......一切都將按acceptected刪除結尾的斜槓產生絕對文件路徑

如果我去:http://localhost/login/
..我重定向到:http://localhost/var/www/public/login

預期行爲爲要去除的結尾的斜線:
http://localhost/login/= >>http://localhost/login

的.htaccess:

RewriteEngine On 

RewriteRule (.+)/$ /$1 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

問題

  1. 爲什麼它不按預期工作?
  2. 如何使其按預期工作?

回答

0

試試這個規則除去尾部斜槓(使用非貪婪正則表達式):

RewriteRule ^(.+?)/$ $1 [L,R=301] 

有可能是沒有錯的例子。嘗試清除緩存,它應該工作..

+0

nope ..它發送我從'/登錄'到'/ index' – superhero

+0

做了編輯,嘗試它,並確保在新的瀏覽器中測試,以避免301緩存的問題。 – anubhava

+0

Yupp,儘管 – superhero