首页 > 解决方案 > 为什么我第一次登陆 Laravel URL 它会基于 Elastic Beanstalk 呈现 HTTP?

问题描述

我正在使用 laravel 5.5 该应用程序在 Elastic beanstalk 单实例上提供服务。我能够在 HTTPS 上为 Laravel 应用程序提供服务。但是,当我第一次登陆链接时,它充当 HTTP。如果我刷新链接,它将再次在 HTTPS 上运行。为了进行测试,我清除了所有 cookie 并将链接放在地址栏上,当我第一次登陆时,它再次以 HTTP 服务,如果我刷新它在 HTTPS 上服务的页面,它再次提供服务。

为了在 Elastic Beanstalk 上提供 laravel 应用程序,我已经更新了 SSL 证书。

使用 .htaccess 如下

# Force SSL
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1 

此外,为了在 HTTPS 上提供所有页面,我在 AppServiceProvider 的启动方法中包含了如下代码

\URL::forceScheme('https');

这很烦人,因为我真的不明白是 Laravel 应用程序问题还是服务器问题。

标签: phplaravelamazon-web-serviceslaravel-5amazon-elastic-beanstalk

解决方案


您可以像这样在根目录中配置您的 htaccess。

<IfModule mod_rewrite.c>

    RewriteCond %{HTTP_HOST} yourdomain\.com\.ar [NC]
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://www.yourdomain.com.ar/$1 [R,L]

    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

请试试这个,让我知道它是如何工作的:)


推荐阅读