【问题标题】:APIs Route in LaravelLaravel 中的 API 路由
【发布时间】:2021-12-26 09:07:39
【问题描述】:

我在api.php:有这样的路线

...
Route::resource("infos",PaymentController::class)->only([
      'show','store'
  ]);
...

当我像这样调用我的 API 时:

  • /api/infos/ABC123 => 成功,状态码:200(在 access.log 中)
  • /api/infos/ABC123/ => 有区域 2 日志(状态代码:301;然后状态代码 200)
  • /api/infos/ABC123//// => 有区域 2 日志(状态代码:301;然后状态代码 200)

为什么当我添加斜线符号时,access.log 中有 2 行?

谢谢!

【问题讨论】:

    标签: laravel api routes


    【解决方案1】:

    Laravel 附带的 .htaccess 文件中有一个部分使用重定向去除尾部斜杠。

    这是来自.htaccess 文件,其中can be found here

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]
    

    所以,您看到的第一行是由 .htaccess 代码触发的重定向,第二行是没有斜杠的最终请求。

    【讨论】:

    • 如何防止第二(或第三)行(/api/infos/ABC123//api/infos/ABC123///)?我试图在.htaccess 上评论这些行,但请求仍然成功!
    【解决方案2】:

    因为当你添加 / 时,Laravel 会将其重定向到没有 / 的地址。

    【讨论】:

      猜你喜欢
      • 2021-04-12
      • 2017-06-29
      • 2019-04-02
      • 1970-01-01
      • 2018-05-31
      • 2018-09-28
      • 2017-02-28
      • 2019-09-13
      • 1970-01-01
      相关资源
      最近更新 更多