Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.3 HTTPS路由_Php_Laravel_Amazon Ec2 - Fatal编程技术网

Php Laravel 5.3 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

我到处都读过,Laravel可以检测到用户何时通过HTTPS浏览,并使用HTTPS生成相应的路由,但这似乎是不真实的

我在
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。现在看来一切都好了。