删除尾部斜杠会生成绝对文件路径

时间:2013-11-01 12:56:34

标签: regex mod-rewrite

行为

如果我去: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]

问题

  1. 为什么不按预期工作?
  2. 如何让它按预期工作?

1 个答案:

答案 0 :(得分:0)

尝试使用此规则删除尾部斜杠(使用非贪婪的正则表达式):

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

您的示例可能没有任何问题。尝试清除缓存,它应该可以工作..