2016-08-24 31 views
0
加载页面

如果页面通过https加载页面,Laravel使用url()或route()来提供https URLs如果通过https加载的页面可以覆盖所有<code>route()</code>和<code>url()</code>以强制使用https URL,那么可以通过https

我们目前使用的是cloudflare,它已经将http转换为https,但由于某种原因,当您访问例如https://www.website.com/some-page,通过route()URL()生成的URL不会自动从http转换为https。有没有办法让我可以强制模式https?

+2

检查您是否打算在使用cloudflare SSL卸载时使用类似“X-Forwarded-Proto:https”的内容。你的服务器不认为它通过HTTPS,所以laravel认为它是http。 – jedifans

+1

作为@jedifans你的服务器可能不会发送'X-Forwarded-Proto:https'。当使用cloudflare ** Flexible SSL **时,通常会发生这种情况。尝试在您的服务器上创建自签名证书并切换到**完全SSL **。 – Skysplit

回答

0

我用下面的代码,它的工作对我来说:

if (!\App::environment('local')) { 
       \URL::forceSchema('https'); 
     } 

在路径中添加以下代码:\程序\供应商\ AppServiceProvider.php开机功能

更换APP_ENV =本地APP_ENV =生产上根.env文件。

+0

我实际上已经尝试过,但它只能在本地使用。在我们的cloudflare托管的服务器上部署后,由于某种原因,它不会生效 –

+0

它在实时云服务器上运行良好。 你是否做出以上两个变化? ,因为我们前几天也遇到了同样的问题,并通过上面的代码修复了这个问题。 –

+0

如果可能的话你可以分享这两个文件代码,以便我会检查并让你知道你是否犯了什么错误 –