php:phpでhttpsへリダイレクトする

前回は.htaccesshttpsのページへリダイレクトする方法を書きましたが、今回はphphttpsのページへリダイレクトする方法をメモします。

httpsのページが数ページ程度であれば、phpのファイルでリダイレクト処理をしてもいいかもしれないです。
その時の状況で使い分けるといいかもしれませんね。

phpでも処理内容は同じなのでhttpsではない場合に、header()関数を利用してリダイレクトします。


phpでhttpsへリダイレクト

phpファイルの先頭に下記の内容を記述します。

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

$_SERVER[‘HTTPS’]が空の場合、アクセスしたURLをhttpsのページへとリダイレクトします。
httpsでアクセスした場合は上記のif文に入らないので、それ以降の処理を実行します。


.htaccess:.htaccessでhttpsへリダイレクトする

httpでアクセスされた際にhttpsのページへリダイレクトさせたい場合があります。
.htaccessを使用するとhttpsリダイレクトさせることが可能です。

その時の方法をメモします。


.htaccessでhttpsへリダイレクト

.htaccessのファイルに下記の内容を記述します。

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

SSL通信したいディレクトリに.htaccessを設置します。
設置したディレクトリ以下のページに適用されます。
サイト全体に適用させる場合は、ドキュメントルートに設置します。


■ .htaccess 記述内容

RewriteEngine on

RewriteEngineを有効にします。


RewriteCond %{HTTPS} off

httpsではない場合という条件を付けます。


RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

アクセスされたURLをhttpsのページへリダイレクトします。