我从 Godaddy 购买了标准 UCC SSL 最高 100 包。我已在服务器上安装了所有必需的文件,并且将https://www.example.com工作正常,但是http://www.example.com在某些浏览器上不会转发到 https:// 版本...。这是为什么?
该网站是运行 Apache 最新版本的 Ubuntu Linux 机器上的虚拟主机。
我的配置如下:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
UseCanonicalName Off
DocumentRoot /var/www/vhosts/example.com/httpdocs
Redirect permanent / https://www.example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName example.com
ServerAlias www.example.com
UseCanonicalName Off
DocumentRoot /var/www/vhosts/example.com/httpdocs
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/example-access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl-all/example.com/example.crt
SSLCertificateKeyFile /etc/apache2/ssl-all/example.com/example.key
SSLCertificateChainFile /etc/apache2/ssl-all/example.com/gd_bundle-g2-g1.crt
<Directory /var/www/vhosts/example.com/httpdocs>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo Options
Order allow,deny
allow from all
<IfModule mod_php5.c>
php_admin_flag engine on
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
</Directory>
</VirtualHost>
还尝试用下面的方法替换该重定向,但没有成功:
RewriteEngine On
RewriteCond %{SERVER_PORT} !443
RewriteRule ^(/(.*))?$ https://%{HTTP_HOST}/$1 [R=301,L]
和:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.example.com/%{REQUEST_URI} [R=301,L]
事情将会http://www.example.com在 Chrome 中可以正确转发,但在 Firefox 中却不行...我已清除两个浏览器上的缓存,重新启动了服务器,重新加载了 apache,并重新启动了两个浏览器。
我的客户也一样,如果他们直接去https://www.example.com工作正常...如果他们转到 http:// 版本,它就不会转发。
还有什么想法可以让我尝试让这个功能全面运行吗?我以为是缓存问题,但现在已经超过 48 小时了,我清除缓存的次数都数不清了。