SLiberté.Net

SSL 301リダイレクト設定 4種 備忘録 コピペ可 (.htaccess PHP JavaScript)

いずれか可能なものを配置(記入)することでドメイン問わずそのままコピペで利用可能

JavaScript は301ではないけど、一応 非SSLからSSLに持っていけるので...

.htaccess (Apache)

1 <IfModule mod_rewrite.c>
2 RewriteEngine On
3 RewriteBase /
4 RewriteCond %{HTTPS} off
5 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
6 </IfModule>

1、7行目は mod_rewriteというURLの書き換え用モジュールがインストールされてい場合に適用されるよってこと 有無がわかっている場合は省略可能

2行目は 上記モジュールエンジンを有効に 3行目は 有効範囲の指定ですのでこの場合は省略可能

5行目 は非SSL通信かどうかの確認(そうでなければ何もしない) です。
6行目 は 5行目で設定した条件に従い SSL通信へ301リダイレクト

httpd.cnf (Apache)

1 RewriteEngine on
2 RewriteCond %{HTTPS} off
3 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

VPSや自宅サーバーなどで複数サイトを管理している場合は一括管理できるかも

PHP(少ページの場合)

1 if (empty($_SERVER['HTTPS'])) {
2 header( "HTTP/1.1 301 Moved Permanently" );
3 header("Location: https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}");
4 exit;
5 }

JavaScript(更に少ページ)

1 if(!(location.protocol === "https:")){
2 location.href="https://" + location.host + location.pathname;
3 }else{
4 };
5 }

コメント