laravel trailing斜线重定向到localhost

时间:2014-02-12 17:44:02

标签: php .htaccess mod-rewrite laravel trailing-slash

当我尝试这个时

http://localhost/Testlaravel/public/users/login

它有效。但是当我尝试

http://localhost/Testlaravel/public/users/login/ 

它将我重定向到

http://localhost/users/login/

知道为什么吗?

这是我的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>

4 个答案:

答案 0 :(得分:20)

将您的代码更改为:

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]

答案 1 :(得分:1)

  

如果上述方法无效,请清除浏览器历史记录   缓存并重试。

答案 2 :(得分:0)

我刚刚将它添加到我的.htaccess文件中,它工作正常!

RewriteCond %{REQUEST_URI} !^

答案 3 :(得分:0)

我的项目目录是

C:\瓦帕\ WWW \ laravel_apps \ LI3 \

并将公共文件夹中的.htaccess更改为以下

<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>

我刚刚更换了

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

RewriteRule ^(.*)/$ /laravel_apps/li3/public/$1 [L,R=301]

现在,如果你在网址的末尾添加一个斜杠,它将重定向到同一页面