如何在Apache虚拟主机中使用ssl证书(https)在cpanel托管中配置Symfony App

时间:2018-02-07 17:05:13

标签: symfony ssl https cpanel

这是我的情景:

  1. 我在我的域中部署了我的Symfony 3.3应用程序,并在Godaddy的专用主机中使用了cpanel。
  2. 我的文档根目录不是public_html,它是public_html
  3. 中的子文件夹
  4. 使用http我可以正常访问我的网站
  5. 当我在cpanel中成功安装ssl证书然后我在web文件夹下更新我的.htaccess以重定向到https时,该网站被重定向到public_html文件夹,而不是重定向到public_html / subfolder / web,就像它发生在http正常进行。
  6. 请有人帮我解决这个问题吗?

    我希望将我的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虚拟主机配置。

2 个答案:

答案 0 :(得分:1)

您可以使用安全配置解决此问题。以下是https://symfony.com/doc/current/security/force_https.html

的示例

或路由

https://symfony.com/doc/current/routing/scheme.html

答案 1 :(得分:0)

Ramazan的一条评论给了我一个新的想法来搜索解决方案。好吧,我发现它here 要将我的站点在子文件夹中部署到public_html中,我需要更改虚拟主机配置,但是,我只修改了主文件,而不是_SSL配置文件。 然后,此链接中的解决方案为我工作。