LoginSignup
4
4

More than 5 years have passed since last update.

さくらのレンタルサーバーで独自SSLを使う時にhttpsにリダイレクトする

Last updated at Posted at 2015-06-27

はじめに

さくらのレンサバでも独自SSL(SNI SSL)が利用できるようになったということで、いろいろ試してみると本当に簡単に導入できました。

インストール手順は以下そのままです。
https://help.sakura.ad.jp/app/answers/detail/a_id/2326

ところが、.htaccessを利用したSSLの強制適用や、URL転送は単純に転送するとループになってしまいうまく動作しないようです。

せっかくSSL対応にしたのに、httpでアクセスされるのはなんとなくイヤなので強制的にhttpsにリダイレクトする方法を考えました。

方法1(2016/6/27追記)

以下のファイルを.htaccessとしてフォルダーに入れます。ポイントとしては転送後につけられるX-Sakura-Forwarded-Forが未設定の場合にのみ転送されます。

RewriteEngine on
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

通常は

RewriteCond %{HTTPS} Off
としておけば、HTTPSがoffの場合のみRewriteが動きます。

方法2(以前の方法です)

index.phpやアクセスのあるスクリプトの先頭に以下のコードを追加します。

index.php
<?php 
  if (empty($_SERVER['HTTPS'])) {
    header("Location: https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"); 
    exit; 
  }
?>

....

さくらのレンサバはhttpとhttpsが同じディレクトリーなので、httpでアクセスがあった場合に、同しパスのhttpsを開くようにするダケです。

コードは混在するとアラートが出るので外部リンク等はすべてhttpsにしておけば良いと思います。これを主要なところに貼り付けておけば対応完了です。

ぶつぶつ

共有SSLの場合にいろいろあるようなのですが、独自の場合でも同様なのかは検証できていません(下記リンク)

参考

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4