この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
https(SSL対応)に強制リダイレクトする
新規サイトの SSL 対応に伴い、http から https へリダイレクトする必要がありました。
apache 拡張である .htaccess の rewrite 命令みたいな機能があれば簡単なのですが、nginx には .htaccess のような便利機能はないため、nginx の設定ファイルを編集する必要があります。
対応方法
https へのリダイレクト対応として一番簡単なのが、return によるリダイレクトです。
nginx の公式サイトでも return 命令によるリダイレクトを推奨しています。なお if 文を使用して細やかなリダイレクトも可能ですが、誤作動し易いためおすすめできません。
〇おすすめの記述方法
server {
listen 80;
server_name www.example.com;
return 301 https://www.example.com$request_uri;
}
実際にサーバーに設定した際のサンプルも載せておきます。
ドメイン名だけ「example.com」に変更している点は悪しからずご了承ください。
server {
listen 80;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443;
ssl on;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
root /var/www/htdocs/;
index index.php index.html;
(省略)
参考サイト
〇Creating NGINX Rewrite Rules
https://www.nginx.com/blog/creating-nginx-rewrite-rules/
nginx の公式サイトにて、nginx のリダイレクト設定の細かい解説つきの説明がありますのでご参照ください。事前に言っておきますが、もちろん英語ページのみです(笑)
Linuxの知識については下記の本も参考になるので、スキルアップにお役立てください。


