我的虚拟主机 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/