Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
Apache HTTPS在PHP中被识别为HTTP_Php_Apache_Http_Ssl_Https - Fatal编程技术网

Apache HTTPS在PHP中被识别为HTTP

Apache HTTPS在PHP中被识别为HTTP,php,apache,http,ssl,https,Php,Apache,Http,Ssl,Https,我在apache生产服务器中启用了Symfony API REST,它使用HTTPS并通过Querys SSL测试认证了a+安全性 通过邮寄路线https://hooks-api.com/hooks,API返回一个url属性,该属性由Symfonyrequest的$request->generateUrl方法生成。 问题是,由于Symfony无法识别服务器正在使用HTTPS(使用$request->getScheme&$request->getPort进行测试),因此API始终生成http://

我在apache生产服务器中启用了Symfony API REST,它使用HTTPS并通过Querys SSL测试认证了a+安全性

通过邮寄路线
https://hooks-api.com/hooks
,API返回一个
url
属性,该属性由Symfony
request
$request->generateUrl
方法生成。 问题是,由于Symfony无法识别服务器正在使用HTTPS(使用
$request->getScheme
&
$request->getPort
进行测试),因此API始终生成
http://
URL

经过一些研究,似乎
phpinfo
打印了一个带有
REQUIRE\u SCHEME HTTP
的Appache HTTP配置,并且缺少了所有用于SSL的东西,比如
HTTPS on
&
SSL\u TLS\u SNI

我已经在自己的本地创建了一个新的生产环境,使用相同的虚拟主机配置:它可以工作

但我仍然不明白为什么生产服务器不能工作。。。这是我的配置:

<VirtualHost *:80>
    ServerName api.hooks
    
    Redirect 308 / https://prod.api.hooks/
</VirtualHost>
<VirtualHost *:443>
    ServerName prod.api.hooks
    
    SSLEngine on
    SSLCertificateKeyFile "${SRVROOT}/conf/key/private.key"
    SSLCertificateFile "${SRVROOT}/conf/key/certificate.crt"
    
    Header set Access-Control-Allow-Origin "*"
    Header always set Content-Security-Policy "default-src 'none'!"
    Header always set Referrer-Policy "strict-origin-when-cross-origin"
    Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains;"
    Header always set X-Content-Type-Options "nosniff"
    
    DocumentRoot C:/wamp64/www/production/hooks/public
    <Directory "C:/wamp64/www/production/hooks/public">
        AllowOverride None
        Require all granted
        
        FallbackResource /index.php
    </Directory>
        
    <Directory "C:/wamp64/www/production/hooks/public/bundles">
        FallbackResource disabled
    </Directory>
</VirtualHost>

ServerName api.hooks
重定向308/https://prod.api.hooks/
ServerName prod.api.hooks
斯伦金安
SSLCertificateKeyFile“${SRVROOT}/conf/key/private.key”
SSLCertificateFile“${SRVROOT}/conf/key/certificate.crt”
标题集访问控制允许原点“*”
标题始终设置内容安全策略“默认src‘无’!”
标头始终设置引用方策略“交叉源时严格源”
标头始终设置严格的传输安全性“最大年龄=31536000;包括子域
标题始终设置X-Content-Type-Options“nosniff”
DocumentRoot C:/wamp64/www/production/hooks/public
不允许超限
要求所有授权
FallbackResource/index.php
后备资源已禁用

“我已经在自己的本地创建了一个新的生产环境,使用相同的虚拟主机配置:它可以工作!”-因为您显示的部分配置在一个环境中工作,但在另一个环境中不工作,所以问题很可能不在您显示的部分(VirtualHost)中,而是在您未显示的部分(配置的其余部分、apache版本、系统设置…)。换句话说:您提供的信息实际上无助于找到问题的原因。问题已解决!问题是SSL配置被设置为全局
默认sll.conf
,而不是每个VHost中的设置。