我遇到了问题,我仍然无法解决这个问题。 我知道这里有类似的问题,但没有任何效果。
我使用了安静的控制器。
当我访问http://localhost/project/public/subsite
时,它有效。
但是当我访问http://localhost/project/public/subsite/
时,它会将我重定向到http://localhost/subsite
这是我当前的.htaccess文件:
<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>
我已经尝试过这些问题的解决方案: laravel trailing Slashes redirect to localhost mod_rewrite remove trailing slash not working in Laravel
但问题仍然存在。
答案 0 :(得分:1)
RewriteBase /project/public/
RewriteRule ^(.*)/$ $1 [L,R=301]
我可以省略Cryode指向的斜杠。另外,请务必清除浏览器缓存,否则更改可能不会生效。
答案 1 :(得分:0)
尝试添加RewriteBase:
RewriteEngine on
RewriteBase /project/public/
基本上,当你在重写行中指定起始斜杠时:
# V----- This little guy
RewriteRule ^(.*)/$ /$1 [L,R=301]
它说“从根开始转到此URL”。由于您的根是http://localhost
,因此它从那里开始,而不是从项目的根开始。