nginx書き換えルールを使用して美しいURLを構築するための最良の方法

nginx書き換えルールを使用して美しいURLを構築するための最良の方法

Webページは次のように接続されます。

example.com/?site=website 

この例では、のウェブサイトにアクセスしていますexample.com domain

上記が表示され、アクセスできるようにルールを書き換える最善の方法を提案できる人はいますかexample.com/website

nginx, Centos 7

答え1

以下を使用できます。IfIsEvil

location = / {
  if ($arg_site) {
    return 302 /$arg_site;
  }
}

答え2

関連:

アイデアは、リダイレクトループを作成することです。ただし、外部リダイレクトと内部リダイレクトの間に違いがあるため、実際にはそうではありません。したがって、1つのリダイレクトは明示的に外部専用であり、もう1つのリダイレクトは明示的に外部であるため、ループは閉じたループではありません。内部のみ:

location = / {
    if ($arg_site) {
        return  302 /$arg_site;
    }
    return  200
    "<!DOCTYPE html><title>site</title>
    <form><input name='site' value='website'/></form>\n";
}
location / {
    rewrite     ^/([^/]*)\$     /?site=$1   break;
    proxy_pass  http://javabackend:8080;
}

関連情報