いつものように個人的なメモ
URLにパラメータを付与した際の動作
hoge.jp へのアクセスを foo.jp へ飛ばすと想定
1. 何も無し
location / {
rewrite ^(.*)$ http://foo.jp redirect;
}
hoge.jp?bar -> foo.jp/?bar となる
2. $request_uri
location / {
rewrite ^(.*)$ http://foo.jp$request_uri redirect;
}
hoge.jp?bar -> foo.jp/?bar?bar となる
3. $uri
location / {
rewrite ^(.*)$ http://foo.jp$uri redirect;
}
hoge.jp?bar -> foo.jp/?bar となる
4. $uri$args
location / {
rewrite ^(.*)$ http://foo.jp$uri$args redirect;
}
hoge.jp?bar -> foo.jp/bar?bar となる
5. $uri?$args
location / {
rewrite ^(.*)$ http://foo.jp$uri?$args redirect;
}
hoge.jp?bar -> foo.jp/?bar&bar となる
6. ?止め
location / {
rewrite ^(.*)$ http://foo.jp? redirect;
}
hoge.jp?bar -> foo.jp/ となる
7. set $args '';
location / {
set $args '';
rewrite ^(.*)$ http://foo.jp$request_uri redirect;
}
hoge.jp?bar -> foo.jp/?bar となる
メモ
動作に差がでるので注意
参考
ようへいの日々精進XP: 深夜メンテナンスに役立ちそうな nginx 小ネタ
stackoverflow: Remove parameters within nginx rewrite