HTTP 到 HTTPS 重定向不起作用!? - 尝试了多种方法

HTTP 到 HTTPS 重定向不起作用!? - 尝试了多种方法

我从 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 小时了,我清除缓存的次数都数不清了。

相关内容