用Apache将HTTP强制重定向到HTTPS
首先
我认为当在Apache中设置域时,经常会多次使用HTTPS通信,例如https://example.com。
如果要设置始终使用SSL,那么不需要使用HTTP通信,但考虑到过去发布资料时使用的URL为http://example.com,对于通过http访问的用户,将其重定向到https会很方便。
因为只需要将其写入设置文件中,所以并没有特别困难的事情,但是有很多信息流传出来,尝试的方法都都失败了。
我认为如果按照这种方法进行,应该会成功,请务必参考。
开发环境
-
- CentOS 6.8
- Apache 2.2.15 (Unix)
设定文件
假设Apache的配置文件存放在/etc/httpd/conf.d/vhost.conf中。
# http経由をhttps経由にリダイレクト
<VirtualHost *:80>
ServerName example.com:80
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^/(.*)$ https://example.com/$1 [R=301,L]
</VirtualHost>
# httpsの設定
<VirtualHost *:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/internal.crt
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
DocumentRoot /var/www/html/example
ServerName example.com:443
CustomLog /var/www/html/example/access.log common
ErrorLog /var/www/html/example/error.log
AddDefaultCharset UTF-8
<Directory "/var/www/html/example/">
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
关于在Apache上安装SSL证书的部分,我已经整理在了”在Sakura VPS上安装SSL证书,并建立HTTPS通信”一文中,你也可以参考一下。
最后,修改配置文件后,重新启动Apache,并使更改生效。
$ sudo service httpd restart
赠品
期待能够得到你的关注!
-
- Qiita: Carat 吉崎
twitter:@carat_yoshizaki
はてなブログ:Carat COOのブログ
ホームページ:Carat
如果您对能够一次学习数学、编程和Web应用的机器学习一对一家庭教师服务“キカガク”感兴趣,请随时与我们联系。