웹페이지는 다음과 같이 접속됩니다.
example.com/?site=website
이 예에서는 에 있는 웹사이트를 방문하고 있습니다 example.com domain
.
위의 내용이 표시되고 액세스 가능하도록 규칙을 다시 작성하는 가장 좋은 방법을 제안할 수 있는 사람이 있습니까 example.com/website
?
nginx, Centos 7
답변1
다음을 사용할 수 있습니다.IfIsEvil
location = / {
if ($arg_site) {
return 302 /$arg_site;
}
}
답변2
관련된:
아이디어는 리디렉션 루프를 생성한다는 것입니다. 그러나 외부 리디렉션과 내부 리디렉션 사이에 차이가 있기 때문에 실제로는 그렇지 않습니다. 따라서 하나의 리디렉션은 명시적으로 외부 전용이고 다른 리디렉션은 명시적으로 외부이므로 루프는 닫힌 루프가 아닙니다. 내부 전용:
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;
}