Laravel(或服务器?)正在(仅)将一条路由重定向到 http

Laravel (or server?) is redirecting (only) one route to http

我在 Fortrabbit 上有一个 Laravel 应用 运行。它的所有路线都是 API(/ 除外)。前端通过 API 与后端对话。前端通过 https 提供服务,所有路由也是如此。

一切都通过 https 进行:资产、API 调用。除了将请求重定向到 http 的一条路由外,其他所有路由。这是一个搜索功能,所以起初我认为它可能是我用于搜索的客户端库,但如果我将 XHR 请求复制为 CURL 并从我的终端启动它,我也会得到重定向:

Request:
curl 'https://theapp/?search=mak' -H 'Accept: application/json, text/plain, */*' -H 'Referer: https://theapp/' -H 'X-XSRF-TOKEN: the-token -H 'X-Requested-With: XMLHttpRequest'

Response:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://theapp?search=mak">here</a>.</p>
<hr>
<address>Apache/2.4.25 (Ubuntu) Server at theapp Port 80</address>
</body></html>

我不是 Laravel 专业人士,但我看不到或找不到任何会导致该行为的内容,无论是在配置中还是在 .htaccess 中。 APP_URL 也设置为 https URL。

就像我说的,应用程序中还有其他几个不重定向的 GET 路由。

我联系了 Fortrabbit 团队,但他们坚称他们没有将任何内容重定向到 http。除了请求之外,我也没有在日志中看到任何内容。

有人知道是什么原因造成的吗?

我注意到的一件事是重定向中的新 URL 在 theapp 之后缺少 /。也许这只是你匿名时的一个错误。

我建议检查日志以查看生成的位置。对于 mod_rewrite,将 LogLevel rewrite:trace3 添加到您的主配置并查看错误日志。如果它是由 mod_alias 完成的,那么它将作为 301 出现在通常的 Apache 访问日志中。