我最近把我的网站从一个VPS移到了另一个。除了ssl的一个问题之外,一切都做得很好,工作得也很好。
我的网站使用ssl。(使用rapidssl证书)
我按照此处的说明将证书从一台服务器移动到另一台服务器。http://www.sslshopper.com/apache-server-ssl-installation-instructions.html
我面临的问题对我来说很奇怪。在HTTPS模式下,我的网站可以很好地使用url http://stackoverflow.com,https://stackoverflow.com,但是它不能使用https://www.stackoverflow.com (注意www)。
这个问题对我来说很奇怪,因为它确实可以在旧服务器上工作。
提前谢谢。Pras
这是我的虚拟主机
<VirtualHost *:80>
ServerAdmin webmaster@@localhost
DocumentRoot /var/www/webroot/
ServerName stackoverflow.com
ServerAlias www.stackoverflow.com
<Directory //var/www/webroot/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost ***.***.***.***:443>
ServerAdmin webmaster@localhost
ServerName stackoverflow.com
ServerAlias www.stackoverflow.com
DocumentRoot /var/www/webroot/
<Directory /var/www/webroot/>
Options -Indexes
AllowOverride All
Order allow,deny
allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/thirdparty.crt
SSLCertificateKeyFile /etc/apache2/ssl/thirdparty.key
SSLCACertificateFile /etc/apache2/ssl/thirdpartyssl.ca
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>发布于 2012-11-28 20:02:10
我找到了解决方案。
首先,有问题的url模式在旧服务器上也不起作用。这已经得到了认证人员的确认。
因此,我决定将所有的"https://www.stackoverflow.com“url请求转发给https://stackoverflow.com。为此,我添加了一些.htaccess规则:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]这些规则是通用的,适用于所有网站。
希望这能节省其他人的时间。
https://stackoverflow.com/questions/13501770
复制相似问题