WEB開発

Laravelで常時HTTPS化する

今やなっていないとエラーメッセージすら出てしまうサイトのhttps化。これを常時行えるようにする設定を紹介します。

.htaccessを編集

[プロジェクトフォルダ]/public/ にある.htaccessを編集します。

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>
    
    
    RewriteEngine On
    # ↓ここに追加する↓
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    # ↑ここに追加する↑

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

初めから色々と書かれている状態だと思います。

今回変更するのは RewriteEngine On と書いている次の行に以下の二行を追加しています。

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

-WEB開発