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;
}