Laravel 9 API 适用于本地主机但不适用于设备 IP

Laravel 9 API works with localhost but not with device IP

我的 Laravel 9 安装在 xampp/htdocs 中。当我将 API URL 与 localhost 一起使用时它工作正常但是当我使用我的设备的 IP 地址时它会抛出 404。

http://localhost/myapp/public/api/users 它工作正常 returns 我所有的用户

但是

http://192.168.254.6/myapp/public/api/users 给我 404。因此我也无法从本地网络访问该应用程序。

我只是用一个 php 文件 test.php 测试了这个案例,http://192.168.254.6/testapp/test.php 工作正常。

我在 Laravel public 目录中的 index.php 中记录了传入请求,我发现 Laravel 正在接收请求,但是当我尝试在其中记录请求时一个控制器,甚至在一个中间件里面,我什么都没有。

可能是什么原因?

经过长时间的研究,我找到了解决方案。问题是由于 https://tenancyforlaravel.com/

的包配置文件 config/tenancy.php

旧配置是:

    /**
     * The list of domains hosting your central app.
     *
     * Only relevant if you're using the domain or subdomain identification middleware.
     */
    'central_domains' => [
        '127.0.0.1',
        'localhost',
    ],

添加特定的本地 IP 或空白字符串解决了问题:

    /**
     * The list of domains hosting your central app.
     *
     * Only relevant if you're using the domain or subdomain identification middleware.
     */
    'central_domains' => [
        '127.0.0.1',
        'localhost',
        ''
    ],

如代码注释中所述,此配置应该仅在使用域或子域时有效,但我使用请求数据来识别租户,但它仍然导致了问题。