Laravel 5:当 url 以“/”结尾时防止重定向 [重复]

Posted

技术标签:

【中文标题】Laravel 5:当 url 以“/”结尾时防止重定向 [重复]【英文标题】:Laravel 5: Prevent redirection when the url ends with “/” [duplicate] 【发布时间】:2016-02-11 00:19:50 【问题描述】:

我的申请网址是:

http://localhost/my-app

我的管理面板在这里:

http://localhost/my-app/admin

但是当我尝试使用这个 url 访问管理面板时:

http://localhost/my-app/admin/

它将我重定向到:

http://localhost/admin

有没有办法防止这种情况发生?我也想从此网址访问管理面板。

我的 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 ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %REQUEST_FILENAME !-d
    RewriteCond %REQUEST_FILENAME !-f
    RewriteRule ^ index.php [L]
</IfModule>

【问题讨论】:

附言。我删除了“# Redirect Trailing Slashes If Not A Folder ...”行,但它仍然不起作用..我也重新启动了 wamp。 你试过在RewriteEngine On之后添加RewriteBase /my-app吗? 但是您的生产环境中没有子目录。所以它应该可以工作,不是吗? Tim 在这里看起来是正确的。当您在删除尾部斜杠重写规则后说“它仍然不起作用”时,这到底是什么意思?它仍然重定向到“/admin”还是将您发送到其他地方? 它仍然重定向到“/admin” 【参考方案1】:

我无法发表评论,所以我会在这里尝试。

你需要从 .htaccess 中删除这一行

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

或者在它前面加#来评论。

【讨论】:

以上是关于Laravel 5:当 url 以“/”结尾时防止重定向 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter - 当 URL 以斜杠结尾时,相对 URL 停止工作?

当 URL 以 Slash 结尾时,Django path() 抛出 404

为啥浏览器 URL 不能以 .com 结尾?

如何防止laravel 5.2中的浏览器后退按钮

如何改进我的查询以防止“PHP 致命错误:允许的内存大小”(laravel 5.2 中的排序和分页)

Laravel 5 - 如何更改 route() 和 assets() url