2

行動

私が行った場合: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. 期待どおりに動作させるにはどうすればよいですか?
4

1 に答える 1

0

末尾のスラッシュを削除するには、次のルールを試してください (貪欲でない regexを使用):

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

あなたの例に問題はないかもしれません。キャッシュをクリアしてみてください。動作するはずです..

于 2013-11-01T12:58:44.003 に答える