行为
如果我去: http://localhost/login
...一切都按照接受的方式工作
如果我去: 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]
问题
- 为什么它没有按预期工作?
- 如何使其按预期工作?
尝试使用此规则来删除尾部斜杠(使用非贪婪正则表达式):
RewriteRule ^(.+?)/$ $1 [L,R=301]
您的示例可能没有错。尝试清除缓存,它应该可以工作。