
여러 호스트에서 수신 대기하는 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;
}