带有 ssl 的 apache 虚拟主机无法在子目录上工作

标签 apache ssl virtualhost

我的虚拟主机 SSL 配置有问题。 我的站点在 HTTP 和 HTTPS 的基本域 www.my_domain.com 上工作,但不适用于所有子目录。 示例:

我的虚拟主机设置如下:

<VirtualHost *:80>
 ServerAdmin my_domain@gmail.com
 DocumentRoot /var/www/html/
 ServerName www.my_domain.com
 ServerAlias my_domain.com
 ErrorLog /var/www/html/error.log

 Alias /secondary /var/www/html/secondary/
 <Directory /var/www/html/secondary/>
    Options FollowSymLinks MultiViews
    allow from all
    order allow,deny
    AllowOverride All
 </Directory>
</VirtualHost>

我的 ssl.conf 设置如下:

<VirtualHost _default_:443>
ServerName www.my_domain.com:443
...
SSLEngine on
SLProtocol all -SSLv2
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
    SSLOptions +StdEnvVars
</Directory>
</VirtualHost>

错误是:在此服务器上找不到请求的 URL/secondary。

最佳答案

由于它解决了 OP 的问题,这里是我的评论作为答案。

您的 SSL VirtualHost 没有定义 DocumentRoot,因此它不知道在哪里寻找/secondary。/secondary 仅在您的 HTTP(端口 80)VirtualHost 中定义。如果您希望两者都返回相同的内容,则必须将所有配置都放在两者中。

关于带有 ssl 的 apache 虚拟主机无法在子目录上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48448310/

相关文章:

node.js - 是否有可能在 Azure 上获得 IIS 的免费 ssl 证书

python - Cherrypy 3.2 虚拟主机调度程序

python pip install mod_wsgi 失败,可能出现 unicode 错误

java - 添加gradle依赖后无法使用apache.poi库

iphone - JMeter 记录使用 HTTPS 的 iOS 原生应用程序导致 SSL 握手问题

tomcat - 如何在 Tomcat 中为虚拟主机设置 webapp 特定参数?

ubuntu - 虚拟主机 UBUNTU 显示无法访问此站点

php - 我应该如何保护我的银行卡详细信息表格?

mysql 没有在 mamp 上启动

java - 如何使用 apache.commons.net.ftps 配置客户端身份验证?