하위 도메인을 제외한 기본 도메인에만 NGinx 리디렉션 적용

하위 도메인을 제외한 기본 도메인에만 NGinx 리디렉션 적용

여러 호스트에서 수신 대기하는 PHP 애플리케이션을 설정했습니다. 예를 들면 다음과 같습니다.

maindomain.com a.maindomain.com b.maindomain.com

maindomain.com의 일부 경로를 리디렉션해야 합니다. 이를 위해 이전에 이 리디렉션을 구성했습니다.

rewrite ^/myroute/(.*)$ http://$server_name/new-myroute/$1 permanent;

그러면 maindomain.com/myroute/에 대한 모든 요청이 maindomain.com/new-myroute로 리디렉션됩니다.

문제는 이 리디렉션이 나머지 하위 도메인에도 적용되어 a.maindomain.com/myroute가 maindomain.com/new-myroute로 리디렉션된다는 것입니다.

해당 리디렉션 적용에서 이러한 하위 도메인을 제외하고 경로 유형 a.maindomain.com/myroute를 그대로 유지하고 싶습니다.

나는 다음과 같이 다른 재 작성을 시도했습니다.

rewrite ^https://maindomain.com/myroute/(.*)$ http://$server_name/new-myroute/$1 permanent;

rewrite ^maindomain.com/myroute/(.*)$ http://$server_name/new-myroute/$1 permanent;

rewrite maindomain.com/myroute/(.*)$ http://$server_name/new-myroute/$1 permanent;

그러나 그들 중 누구도 작동하지 않습니다.

기본 도메인에만 리디렉션을 적용하는 방법에 대한 아이디어가 있습니까? 감사해요.

편집: 서버 이름에는 존재할 수 있는 모든 하위 도메인을 수신하는 와일드카드가 있습니다.

server_name maindomain.com *.maindomain.com;

답변1

별도의 서버 블록을 사용하거나 if 조건을 사용하세요.

if ($host = "example.com") {
    rewrite ^/myroute/(.*)$ http://$server_name/new-myroute/$1 permanent;
}

관련 정보