Php Laravel 5.3 HTTPS路由
我到处都读过,Laravel可以检测到用户何时通过HTTPS浏览,并使用HTTPS生成相应的路由,但这似乎是不真实的 我在Php Laravel 5.3 HTTPS路由,php,laravel,amazon-ec2,Php,Laravel,Amazon Ec2,我到处都读过,Laravel可以检测到用户何时通过HTTPS浏览,并使用HTTPS生成相应的路由,但这似乎是不真实的 我在AppServiceProvider中使用了一个配置,强制所有生成的URL都以HTTPS为前缀,但这只掩盖了一个潜在的问题 我让拉威尔坐在一个EC2实例上。没有负载平衡器,我也没有配置代理。这纯粹是一个开发实例 如何获取由路由帮助程序生成的URL以使用HTTPS?如果用户在HTTPS页面上,Laravel的路由()帮助程序将生成HTTPS URL。由于Google Chrom
AppServiceProvider
中使用了一个配置,强制所有生成的URL都以HTTPS为前缀,但这只掩盖了一个潜在的问题
我让拉威尔坐在一个EC2实例上。没有负载平衡器,我也没有配置代理。这纯粹是一个开发实例
如何获取由
路由
帮助程序生成的URL以使用HTTPS?如果用户在HTTPS页面上,Laravel的路由()
帮助程序将生成HTTPS URL。由于Google Chrome已经将HTTP网站标记为不安全的,因此最好将所有HTTP请求重写为HTTPS。有很多方法可以做到这一点,但据我所知,最好的方法是设置web服务器来完成这项工作
Apache的VH示例:
<VirtualHost my.app:80>
ServerName my.app
Redirect permanent / https://my.app
</VirtualHost>
<VirtualHost my.app:443>
DocumentRoot /home/my/public
ServerName my.app
ServerAlias my.app
ServerAlias *.my.app
SSLEngine on
SSLCertificateFile conf/ssl.crt/server.crt
SSLCertificateKeyFile conf/ssl.key/server.key
<Directory /home/my/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
ServerName.my.app
重定向永久/https://my.app
DocumentRoot/home/my/public
ServerName.my.app
服务器别名my.app
ServerAlias*.my.app
斯伦金安
sslcertificatefileconf/ssl.crt/server.crt
SSLCertificateKeyFile conf/ssl.key/server.key
选项索引跟随符号链接
允许超越所有
要求所有授权
据我所知,生成的url应该是相对的,而不是绝对的,所以上面没有协议。它们被生成为绝对url。如果您在HTTPS页面上,Laravel的route()帮助程序将生成HTTPS url。
这就是问题所在——根本没有。我的虚拟主机已经配置为支持HTTPS。似乎web服务器配置文件有问题。上面的配置来自一个相当大的项目,它工作得非常完美,请尝试一下。它将所有HTTP请求重写为HTTPS,因此您永远无法加载HTTP页面。看起来我没有打开SSLEngine。现在看来一切都好了。