http://mysite.com/?action=add&goback=1
のような URL をリダイレクトしたいhttp://myiste.com/add/?goback=1
。
私は来た:
location / {
if ($request_uri ~* /\?action.*) {
add_header Cache-Control private;
rewrite ^/\?action=([^&]*)&?(.*)$ /$1/?$2 permanent;
}
}
しかし、うまくいかず、理由がわかりません。
PS私はadd_header
ちょうどif ($request_uri ~* /\?action.*) {
起こったことを示す必要がありました. 私は他のいくつかのソリューションを試しました
rewrite ^/\?action=(\w+).*$ /$1/?$query_string permanent;
失敗。
更新:
実際の目標は次のとおりです。
URLがこのように見える場合
http://mysite.com/add/?param1=param1&...
/(add)/ はアクション パラメータになる必要があります。
location ~ /[\-\w]+/ {
rewrite ^/([^/]*).*$ /?action=$1 last;
...
}
これは適切に機能しているようで、これについては追加のヘルプは必要ないと思います
URL が次のようになっている場合:
http://mysite.com/?action=add¶m1=param1&...
nginx は次の場所にリダイレクトする必要があります。
http://mysite.com/add/?param1=param1&...
この部分を実行しようとすると、必要のない結果が得られます-無限のリダイレクトループ、 のような URLhttp://mysite.com/add/?action=add¶m1=param1&...
など。
私の目標に対処するソリューションはありますか?