laravel 尾部斜杠重定向到本地主机

Posted

技术标签:

【中文标题】laravel 尾部斜杠重定向到本地主机【英文标题】:laravel trailing Slashes redirect to localhost 【发布时间】:2014-03-11 05:26:36 【问题描述】:

当我尝试这个时

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>

【问题讨论】:

【参考方案1】:

将您的代码更改为:

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]

【讨论】:

我试了一下,现在重定向到localhost/C:/xampp/htdocs/Testlaravel/public/users/login 好的,我添加了 RewriteBase /Testlaravel/public/ 现在它可以工作了 :) 对我来说,这行: RewriteBase /Testlaravel/ 有效,因为我没有使用公用文件夹并摆脱了它。谢谢。 这对我不起作用。 http://localhost/newproject/public/login/ 工作正常。但是http://localhost/newproject/public/login/ 会重定向到http://localhost/login @kupendra:每个人的问题都不一样,这不是你的问题的答案。发布一个新问题,我们会对此进行调查。【参考方案2】:

如果上述方法不起作用,请清除您的浏览器历史记录 缓存并重试。

【讨论】:

【参考方案3】:

我刚刚将它添加到我的 .htaccess 文件中,它运行良好!

RewriteCond %REQUEST_URI !^

【讨论】:

【参考方案4】:

我的项目目录是

c:\wamp\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]

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

【讨论】:

以上是关于laravel 尾部斜杠重定向到本地主机的主要内容,如果未能解决你的问题,请参考以下文章

Laravel PHPunit 重定向到本地主机

为啥在 URL 中缺少尾部斜杠 (/) 时会发生重定向?

带有 HTTPS 重定向的 Nginx 入口控制器尾部斜杠

如何在Symfony 4.1中禁用尾部斜杠重定向?

javascript 使用AWS Lambda重定向到CloudFront上的尾部斜杠。 (所有这一切都因为S3使用302重定向而不是301)

删除尾部斜杠重定向循环