我在 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.conf
到default.conf
sites-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
由浏览器完成。
有关此行为的更多信息,请参见: