[サーバー] 常時https対応と、www統一のhtaccessの書き方(XSERVERなど)
こんにちは、@yoheiMuneです。
XSERVERで、常時SSLとwww統一の対応について、htaccessを記述する機会があったので、その内容をブログに書いておきたいと思います。
Apacheのmod_rewriteモジュールの使い方を徹底的に解説 | OXY NOTES
RewriteRule Flags - Apache HTTP Server Version 2.4(公式、英語)
最後になりますが本ブログでは、フロントエンド、サーバー、Swift、PHP、Node.js、Python、Java、Linux、インフラ、Go言語、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
XSERVERで、常時SSLとwww統一の対応について、htaccessを記述する機会があったので、その内容をブログに書いておきたいと思います。
目次
常時SSL対応とwww統一のhtaccess
.htaccessファイルは以下のように記載します。ドメイン名は設定したいサイトに合わせて修正してください。また設定前には必ず現状のバックアップを取り(.htaccessファイル)、もし失敗しても戻せるようにしておく必要もあります。
# Apacheのリライト機能が有効な場合のみに限定
<IfModule mod_rewrite.c>
# リライト機能をONにする
RewriteEngine on
# httpでアクセスされた場合には、httpsへリダイレクト.
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# wwwなしでアクセスされた場合には、www付きにリダイレクト.
RewriteCond %{HTTP_HOST} ^yoheim\.net [NC]
RewriteRule ^(.*) https://www.yoheim.net/$1 [R=301,L]
</IfModule>
%{xxx}などのHTTP環境変数や、NSやR=301やLなどの条件指定など専門的なものがありますが、詳細は以下のリンクをご参照ください。Apacheのmod_rewriteモジュールの使い方を徹底的に解説 | OXY NOTES
RewriteRule Flags - Apache HTTP Server Version 2.4(公式、英語)
サクラのレンタルサーバーの場合
サクラさんの特殊事情により、上記では常時SSL対応ができません。以下のように行います。
# リライト機能をONにする
RewriteEngine On
# 「ENV:HTTPS」に「on」ではない
RewriteCond %{ENV:HTTPS} !^on$
# または、「X-SAKURA-FORWARDED-FOR」に値が入っていない
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
# 場合には、https://〜 へリダイレクトする.
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
詳しくはX-SAKURA-FORWARDED-FORなどをキーワードに検索して見てください。最後に
このようなスニペットはコピペして使えるので、知って入れば非常に効率的に作業ができます。ぜひ貯めておきたいTipsです。最後になりますが本ブログでは、フロントエンド、サーバー、Swift、PHP、Node.js、Python、Java、Linux、インフラ、Go言語、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!






