用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应用的机器学习一对一家庭教师服务“キカガク”感兴趣,请随时与我们联系。

广告
将在 10 秒后关闭
bannerAds