index.php?id=1 和 index.php/id/1 之间的区别

Posted

技术标签:

【中文标题】index.php?id=1 和 index.php/id/1 之间的区别【英文标题】:Difference Between index.php?id=1 and index.php/id/1 【发布时间】:2019-04-27 16:20:37 【问题描述】:
    如果我想创建 RESTful API,我应该选择哪一个? 作为 index.php/id/1 的 URL 是如何工作的?我认为这是一个文件路径,而不是 URL。 如果我想获取 abc.com/img/1.png 格式的图像,它可能与 abc.com/img/param 有冲突。我该如何解决?

顺便说一句,我现在使用 Laravel。

非常感谢。

【问题讨论】:

Laravel 使用 item/id 约定。看到这个laravel.com/docs/5.7/controllers#resource-controllers 【参考方案1】:

区别在于路由模型绑定

https://laravel.com/docs/5.7/routing#route-model-binding

这使您可以获取带有传递到路由中的 id 的模型

例如这样的路线:

Route::get('users/user', 'UsersController@getUser');

将允许您在您的方法中执行此操作:

use App\User

public function getUser(User $user) 

    return $user;


这意味着您可以获得路径中 id 的完整记录。

所以你的问题:

1:我会用它来发送模型 ID 2:路由中的变量按顺序传递给允许您访问它们的方法。 3:您需要小心您的路线,因为您可能会遇到冲突。话虽如此,Laravel 并没有使用传统的目录结构进行存储。我相信,如果您有一个 /public/img 文件夹结构并且该文件夹包含一个名为 1.png 的 img ,它将获取图像,但我尚未对此进行测试。

【讨论】:

以上是关于index.php?id=1 和 index.php/id/1 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

拒绝直接访问除 index.php 之外的所有 .php 文件

(宽字节注入) 手注+sqlmap

加载位于博客文件夹外的 index.php 内容以发布单页

xampp下载和使用

Thinkphp3.2新手篇之系统运行流程1

htaccess 用于本地测试和实时服务器