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