【发布时间】:2015-07-17 13:49:58
【问题描述】:
在我的本地计算机上没有发现这个问题,但我注意到我的一些页面返回了我的 Web 服务器的裸 IP 地址而不是域名。示例:
route('homepage') 有时会返回 192.XX8.X.2XX 或 192.XX8.X.2XX/index.php 或 domain.com/index.php。我的页面在第一次访问时被缓存,并且页面上的所有 URL 有大约 50% 的可能性会出现奇怪的情况。
对于这种奇怪的行为是否有解释,我将如何解决它?这是一个相当令人担忧的问题,因为 Googlebot 列出了我网站的另外三个重复副本。
注意:我还在为我的路线使用 LaravelLocalization 包:https://github.com/mcamara/laravel-localization
我也在 Laravel Forge (Nginx) 下运行这个应用程序
【问题讨论】:
-
您可以编写 htaccess 规则将 IP 地址重定向到域名。 Google 不应该缓存 301/302 重定向页面。
-
谢谢,我会尝试将其作为临时解决方案,但我仍然需要修复/调查
route()问题。 -
.env 变量中的 APP_URL 有什么?
-
我参加聚会有点晚了,但我遇到了完全相同的问题。在此期间您找到解决方案了吗?
-
@gregory 似乎有一个错误,或者可能是有意 laravel 不在路由生成中使用 APP_URL 。在构建绝对 url 的路由 URL 生成器内部,laravel 使用 symfony getBaseUrl 返回请求的基本 url,而不是你的 APP_URL 中的内容。因此,基本上,如果您缓存 URL,并且某些机器人将通过 IP 地址到达您的服务器,您最终将获得基于 ip 的 URL,唯一的解决方案是以缓存特定于域的方式管理缓存。 :D 这很愚蠢,但我没有看到任何其他解决方案。
标签: php nginx dns ip laravel-routing