Laravel route()返回裸IP地址而不是域

Hel*_*Che 7 php ip dns nginx laravel-routing

没有在我的本地机器上捕获这个,但我注意到我的一些页面返回了我的Web服务器的裸IP地址而不是域名.例:

route('homepage')有时会回来192.XX8.X.2XX192.XX8.X.2XX/index.phpdomain.com/index.php.我的页面在第一次访问时被缓存,并且页面上的所有URL都有50%的可能性.

是否有这种奇怪的行为的解释,我将如何解决它?自从Googlebot列出我网站的另外三个副本以来,这是一个非常令人担忧的问题.

注意:我也使用LaravelLocalization包作为我的路线:https://github.com/mcamara/laravel-localization

我也在Laravel Forge(Nginx)下运行这个应用程序

for*_*net -2

这很可能取决于您的 nginx 配置。如果您只在服务器上配置了应用程序,那么它将作为默认应用程序。当您直接通过 IP 地址(或链接到您的服务器的任何其他域)访问服务器时,nginx 将为 laravel 应用程序提供服务。

有很多方法可以解决这个问题。我建议为服务器配置默认值。这可能只是一个 html 页面,上面写着“恭喜您已到达服务器”或类似内容。另一个是重新配置应用程序的 nginx 文件,将任何不正确的域重定向到应用程序的域名。

server {
    if ($host != example.com) {
        return 301 https://example.com$request_uri;
    }
    listen 80;
    server_name example.com;
}
Run Code Online (Sandbox Code Playgroud)

有关 nginx 如何处理请求的更多信息:http://nginx.org/en/docs/http/request_processing.html