Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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虚拟主机中的ssl证书(https)在cpanel主机中配置Symfony应用程序_Symfony_Ssl_Https_Cpanel - Fatal编程技术网

如何使用Apache虚拟主机中的ssl证书(https)在cpanel主机中配置Symfony应用程序

如何使用Apache虚拟主机中的ssl证书(https)在cpanel主机中配置Symfony应用程序,symfony,ssl,https,cpanel,Symfony,Ssl,Https,Cpanel,这是我的设想: 我有我的Symfony 3.3应用程序部署在我的域名与cpanel在一个专门的主机在Godaddy。 我的文档根不是public\u html,它是public\u html中的一个子文件夹 通过http,我可以正常访问我的网站 当我成功地在cpanel中安装ssl证书,然后更新web文件夹下的.htaccess以重定向到https时,该站点被重定向到public_html文件夹,而不是public_html/子文件夹/web,就像http通常发生的情况一样。 拜托,有人能帮我解

这是我的设想:

我有我的Symfony 3.3应用程序部署在我的域名与cpanel在一个专门的主机在Godaddy。 我的文档根不是public\u html,它是public\u html中的一个子文件夹 通过http,我可以正常访问我的网站 当我成功地在cpanel中安装ssl证书,然后更新web文件夹下的.htaccess以重定向到https时,该站点被重定向到public_html文件夹,而不是public_html/子文件夹/web,就像http通常发生的情况一样。 拜托,有人能帮我解决这个问题吗

我希望将我的Symfony web文件夹更改为public_html文件夹不是唯一的解决方案

更新1

我的.htaccess文件

DirectoryIndex app.php
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
    RewriteEngine On
    # start https
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    # end https
    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]
    RewriteCond %{HTTP:Authorization} .
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]
    RewriteRule ^ %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /app.php/
    </IfModule>
</IfModule>
更新2


我找到了问题和解决方案,这就是为什么我更改了问题的标题,因为问题不在于Symfony,而在于Apache虚拟主机配置。

您可以通过使用安全配置来解决此问题。这里有一个例子

或路由


Ramazan的一条评论给了我一个寻找解决方案的新想法。嗯,我找到了 要将子文件夹中的站点部署到public_html,我需要更改虚拟主机配置,但是,我只修改了主文件,而没有修改_sslconfig文件。
那么,此链接中的解决方案对我有效。

您好,谢谢,但是.htaccess正确吗?或者我需要使用不带.htaccess的安全配置?我建议您检查一下。我试过了,这就是浏览器显示的内容:在此服务器上找不到请求的URL/en。此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。如果我从url中删除/en,那么我的问题仍然存在,网站将重定向到public_html文件夹,而不是public_html/子文件夹/webIt。这类似于443的文档根与80的文档根不同。我的专用主机是GoDaddy。您知道我是否需要修改443端口的虚拟主机配置吗?删除此重写规则^.*$https://%{HTTP\u host}%{REQUEST\u URI}[L,R=301]是否尝试此操作。重写规则^/?https://%{SERVER_NAME}/$1[R,L]