问题
When I try this
http://localhost/Testlaravel/public/users/login
it works. But when I try
http://localhost/Testlaravel/public/users/login/
it redirects me to
http://localhost/users/login/
Any idea why?
This my htaccess file
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
回答1:
Change your code to this:
Options -MultiViews
RewriteEngine On
RewriteBase /Testlaravel/public/
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ $1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
回答2:
If the above method not working then clear your browser history with cache and try again.
回答3:
I Just added this to my .htaccess file and it worked fine!
RewriteCond %{REQUEST_URI} !^
回答4:
My project directory is
c:\wamp\www\laravel_apps\li3\
and changed the .htaccess inside public folder to the following
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /laravel_apps/li3/public/$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
i just replaced
RewriteRule ^(.*)/$ /$1 [L,R=301]
to
RewriteRule ^(.*)/$ /laravel_apps/li3/public/$1 [L,R=301]
now, if you put an slash at an end of the url it will redirected to the same page
来源:https://stackoverflow.com/questions/21735527/laravel-trailing-slashes-redirect-to-localhost