【问题标题】:My VirtualHost redirects for an HTTPS site are broken我的 HTTPS 站点的 VirtualHost 重定向已损坏
【发布时间】:2014-10-06 01:44:04
【问题描述】:

Apache/2.2.15,CentOS Linux。

我有一个网站,我希望整个网站始终都进行 SSL 加密。通常,我不使用 mod_rewrite 进行 www/non-www 重定向;我只使用VirtualHosts 和Redirect 指令。

但是,尝试对我的 HTTPS 站点执行此操作时,会在所有浏览器中返回一般 SSL 连接错误。这是我的 vhost 文件(域名和 IP 地址已更改):

NameVirtualHost 192.168.0.256:80
NameVirtualHost 192.168.0.256:443

<VirtualHost 192.168.0.256:80>
    ServerName www.example.com
    ServerAlias example.com
    Redirect / https://www.example.com/
</VirtualHost>

# ############################
# This block breaks everything
# ############################
<VirtualHost 192.168.0.256:443>
   ServerName example.com:443
   Redirect / https://www.example.com/
</VirtualHost>

<VirtualHost 192.168.0.256:443>
    DocumentRoot /var/www/example_site/htdocs/
    ServerName www.example.com:443
    ErrorLog /var/www/logs/example_site/error_log
    SSLEngine On
    SSLCertificateFile /etc/httpd/ssl.crt/www.example.com.crt
    SSLCertificateKeyFile /etc/httpd/ssl.key/www.example.com.key
    SSLCACertificateFile /etc/httpd/ssl.crt/www.example.com.ca-bundle
    SetEnvIf User-Agent ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0
    <Directory /var/www/example_site/htdocs/>
        Options FollowSymLinks MultiViews
        AllowOverride All
    </Directory>
    <Files ~ "\.php$">
        SSLOptions +StdEnvVars
    </Files>
</VirtualHost>

标有“这个块破坏了一切”的块似乎是罪魁祸首。当 VirtualHost 块被注释掉时,网站会按预期加载,一切都很好。但是我真的想要/需要将非 www 重定向到 www,并且当启用该块时,每次尝试加载站点时都会得到这个:

错误日志似乎没有显示任何有用的信息。谁能从中看出到底出了什么问题?

【问题讨论】:

    标签: apache redirect virtualhost apache2.2 virtual-hosts


    【解决方案1】:

    端口 443 始终需要附加证书。即使它只是一个简单的重定向。连接 -> SSL -> 数据传输。

    【讨论】:

      猜你喜欢
      • 2019-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 2019-03-13
      • 1970-01-01
      • 2012-10-04
      • 2017-04-15
      相关资源
      最近更新 更多