nginx 재작성 규칙을 사용하여 아름다운 URL을 구축하는 가장 좋은 방법

nginx 재작성 규칙을 사용하여 아름다운 URL을 구축하는 가장 좋은 방법

웹페이지는 다음과 같이 접속됩니다.

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

관련 정보