2013-11-01 69 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