Nginxサーバーで書き換え機能を使用したい。
「 http://www.example.com/1234 」を試してみると、「 http://www.example.com/v.php?id=1234 "とブラウザで" http://www.example.com/1234 "を取得したい。
これはnginx.confファイルです
...
location ~ /[0-9]+ {
rewrite "/([0-9]+)" http://www.example.com/v.php?id=$1 break;
}
...
「 http://www.example.com/1234 」を試してみると
したい ...
url bar in browser : http://www.example.com/1234
real url : http://www.example.com/v.php?id=1234
しかし、私は困っている...
url bar in browser : http://www.example.com/v.php?id=1234
real url : http://www.example.com/v.php?id=1234
リファレンス: http://wiki.nginx.org/HttpRewriteModule#rewrite
置換文字列がhttp://で始まる場合、クライアントはリダイレクトされ、それ以上の> rewriteディレクティブは終了します。
そのため、http://部分を削除すると動作します。
location ~ /[0-9]+ {
rewrite "/([0-9]+)" /v.php?id=$1 break;
}
私の場合、適用したい他のルールがあるため、「最後」を使用して機能させる必要がありました:
location ~ /[0-9]+ {
rewrite "/([0-9]+)" /v.php?id=$1 last;
}