Nginxでリダイレクト(http->https)及びリライト設定
Nginxでhttpアクセス時にhttpsリダイレクトさせたい。それとは別に「https://test.com/detail/123/」でアクセスした際に内部的には「https://test.com/detail/index.php?id=123」のようにリライトさせたい。以下に設定方法のメモ。
http->httpsリダイレクト設定
#設定ファイルの編集 vi /etc/nginx/conf.d/default.conf #以下を追記 server { listen 80; server_name test.com; return 301 https://$host$request_uri; }
尚、同一server_nameで別のserver{}内に「listen 80;」の記述がある場合はコメントアウトしておく。コメントアウトしなくても動くことは動いたが、「nginx -t」で構文チェックを行った際に警告メッセージが表示された。尚、一通り対応が完了したらnginxを再起動する。
リライト設定
#設定ファイルの編集 vi /etc/nginx/conf.d/default.conf #以下を設定したいドメインのserver{}内に追記する location /detail/ { rewrite ^/detail/([0-9]+)/$ /detail/index.php?id=$1; index index.php; error_page 404 /detail/404.php; }
「index index.php;」「error_page 404 /detail/404.php」部分は任意で設定する。
所感
リダイレクトの方はスムーズに対応できたが、リライトの方は無限ループになってしまったり等、割と難航した。この辺りは慣れていきたいところ。
参考サイト
関連記事
-
Nginxのバーチャルホスト設定とLet's Encryptの導入
NginxでVirtualHostの設定し、複数のドメインを同一サーバに割り当て ...
-
Nginxで特定のディレクトリに対してBasic認証を設定
Nginxで特定のディレクトリに対してBasic認証を設定したい。Apacheだ ...
-
CentOS7系にLEMP環境(Linux + Nginx + MySQL + PHP)を構築
先日KAGOYAのVPSからIndigoに移行した際にCentOS6から7へバー ...