如何使用Apache虚拟主机中的ssl证书(https)在cpanel主机中配置Symfony应用程序
这是我的设想: 我有我的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文件如何使用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通常发生的情况一样。 拜托,有人能帮我解
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]