1

我有一个在 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。除了请求之外,我也没有在日志中看到任何内容。

有谁知道可能导致这种情况的原因是什么?

4

1 回答 1

1

我注意到的一件事是重定向中的新 URL 缺少/after theapp。当您将其设为匿名时,这可能只是一个错误。

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

于 2017-06-26T19:26:39.723 回答