Apache 始终将 http 重定向到 https

Apache 始终将 http 重定向到 https

我在 Ubuntu 12.04 上运行 Apache 2.4.7。我有一个网站http://bharatkrishna.net/这是在我家的一台机器上运行的。我在路由器上转发了端口 80 和 443。

正如你所见,当你访问http://bharatkrishna.net/,它会自动重定向到https://bharatkrishna.net/

我不希望整个网站都重定向到 https。我原本打算只对特定的子 URL 执行此操作。例如,仅http://bharatkrishna.net/login应该是 https,其余应该是 http。我该怎么做?

这是我通过阅读一些在线教程在 Apache 上设置 SSL 的方法:

• 在 /etc/apache2/sites-enabled/ 中打开 SSLEngine,设置证书位置

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin webmaster@localhost                                                                                                                                                                                               
                DocumentRoot /var/www/html/

                #LogLevel info ssl:warn                                                                                                                                                                                                       

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined                                                                                                                                                                               

                #   SSL Engine Switch:                                                                                                                                                                                                        
                #   Enable/Disable SSL for this virtual host.                                                                                                                                                                                 
                SSLEngine on

                SSLCertificateFile      /etc/apache2/ssl/www_bharatkrishna_net.crt
                SSLCertificateKeyFile   /etc/apache2/ssl/bharatkrishna.net.key

                SSLCACertificatePath /etc/ssl/certs/
                SSLCACertificateFile /etc/apache2/ssl/bundle.crt

....
....

        </VirtualHost>
</IfModule>

• 运行以下命令:

sudo a2enmod ssl
sudo a2ensite default-ssl

我将其复制000-default.confdefault.confsites-enabled 下,以下是文件的内容:

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost>

答案1

Apache 发布的配置不执行从http到 的任何重定向https。在这种情况下,切换到https由浏览器完成。

有关此行为的更多信息,请参见:

相关内容