Apache中如何将http重定向到https
Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,而使用SSL证书是保护服务器安全的行之有效的方法之一,这其中比较重要的一步就是将http重定向到https。那么Apache中如何将http重定向到https?
这里分两种情况来操作:
1)使用虚拟主机将http重定向到https
Apache虚拟主机定义了服务器上托管的一个或多个域的设置。在虚拟主机指令中,您可以指定站点文档根目录(包含网站文件的目录),为每个站点创建单独的安全策略,使用不同的SSL证书,配置重定向等等。
通常,当在域上安装SSL证书时,该域将具有两个虚拟主机指令。第一个用于端口80的站点的http版本,另一个用于端口443的https版本。
要将网站重定向到https,请使用Redirect指令,如下例所示:
<VirtualHost *:80>
ServerName anxinssl.com
ServerAlias www.anxinssl.com
Redirect permanent / https://anxinssl.com/
</VirtualHost>
<VirtualHost *:443>
ServerName anxinssl.com
ServerAlias www.anxinssl.com
Protocols h2 http:/1.1
# SSL Configuration
# Other Apache Configuration
</VirtualHost>
注:将上述代码中的anxinssl.com和www.anxinssl.com替换成自己的域名即可,操作完成后重启Apache就能生效了。
2)使用mod_rewrite / .htaccess将http重定向到https
此方法要求 mod_rewrite的 在您的服务器上启用。 如果您无权访问Apache服务器的虚拟主机文件,请使用 .htaccess 文件以将http请求重写为https。 将以下行添加到名为 .htaccess 域根目录中的文件(如果不存在,则创建文件):
RewriteEngine On RewriteCond%{HTTPS}!= on RewriteRule ^ /?(。*)https://%{SERVER_NAME} / $ 1 [R,L]
然后重启Apache就可以使用https://来访问网站了。