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

2022年6月17日

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

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

.htaccess (Apache)

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

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

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

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

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

httpd.cnf (Apache)

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

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

PHP(少ページの場合)

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

JavaScript(更に少ページ)

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