【问题标题】:Laravel one specific route gives 403 (nginx)Laravel 一条特定路线给出 403 (nginx)
【发布时间】:2023-03-26 00:49:02
【问题描述】:

除了/blog 提供403 forbidden (nginx) 的路线外,我的生产网站上的所有路线都运行良好。

web.php

Route::get('/blog', [BlogController::class, 'index'])->name('blog.index');
Route::get('/blog/{slug}', [BlogController::class, 'post'])->name('blog.post');
Route::get('/blog/preview/{slug}', [BlogController::class, 'postPreview'])->name('blog.post.preview');

我已经通过 Forge 和 Envoyer 进行了部署,并且没有更改服务器配置中的任何内容。

【问题讨论】:

  • 查看你的public文件夹下是否有可能冲突的blog文件夹
  • @apokryfos 有,谢谢!随意张贴作为答案,我会接受。

标签: laravel nginx


【解决方案1】:

当使用默认的 Laravel 配置时,重写规则将所有请求重写为 index.php 以便路由器处理它们,首先检查请求是否与现有文件或文件夹不对应。这样做通常是为了提供资源,例如直接打开 js 文件,而不用打 Laravel。但是,这意味着如果您有一个与路由同名的文件夹,则该文件夹将优先于路由。

在您的情况下,您有一个名为 public/blog 的文件夹,并且 nginx 正确返回 403,因为默认情况下禁止访问目录以查看其内容。

【讨论】:

    猜你喜欢
    • 2014-09-18
    • 2019-01-23
    • 2014-05-23
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 2016-11-08
    • 2020-03-12
    相关资源
    最近更新 更多