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へバー ...