Laravel 子域端点不断重定向并出现 301 错误

Laravel subdomain endpoint keeps redirecting with 301 error

我有一个可用的 Laravel 应用程序,并引入了一个子域 (api.mysite.com) 来处理我的用户的编程访问。我在路由文件的顶部设置了一个路由组:

Route::group(['domain' => 'api.' . config('app.domain'), 'middleware' => 'api'], function () {
    Route::get('/some-endpoint','APIController@someHandler');
});

这种安排适用于当地。

我在我的 DNS 记录中添加了一条 A 记录,指向我站点 IP 的 api 子域:

A Record    api    XX.XXX.XXX.XXX    Automatic

问题是,当我尝试访问 api.mysite.com/some-endpoint 并部署到生产环境时,该站点以 301 响应并尝试将我重定向到 mysite.com/some-endpoint,但我的路线中没有路线文件,因此回复 404.

问题存在于我的 nginx 配置文件中。在 server 部分,我需要更改行

server_name mysite.com;

server_name .mysite.com;

参见this related question。但是请注意,由 .mysite.com 等名称产生的通配符服务器名称查找比 mysite.com www.mysite.com api.mysite.com.

等明确定义的名称产生的通配符服务器名称查找慢

另见 nginx documentation:

A special wildcard name in the form “.example.org” can be used to match both the exact name “example.org” and the wildcard name “*.example.org”.