Laravel 4.2 Trailing Slash导致基础uri

时间:2014-07-06 22:20:32

标签: php laravel

我遇到了问题,我仍然无法解决这个问题。 我知道这里有类似的问题,但没有任何效果。

我使用了安静的控制器。 当我访问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

但问题仍然存在。

2 个答案:

答案 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,因此它从那里开始,而不是从项目的根开始。