예를 들어 다음 sub1.example.com
으로 리디렉션 하면서 하위 도메인을 URL 끝에 추가하는 동안 와일드카드 하위 도메인을 새 URL로 리디렉션하려고 합니다.www.newdomain.example/categories/sub1
server {
server_name ~^(.*)\.example\.com$ ;
return 301 $scheme://newdomain.example/categories/;
}
?
Nginx는 마지막에 차단되지 않기 때문에 기본적으로 이것을 추가한다고 생각합니다.
답변1
또는 다음과 같은 경우에는 악을 사용하지 마십시오.
server {
server_name ~^(.*)\.example\.com$;
return 301 $scheme://www.newdomain.example/categories/$1$request_uri;
}
$request_uri에는 이미 쿼리 문자열/매개변수가 포함되어 있으므로 다음을 참조하세요.http://nginx.org/en/docs/http/ngx_http_core_module.html
$request_uri를 사용하고 싶지 않을 때 $is_args $args 쌍에 대해서도 언급하고 싶습니다.
location = /from {
return 301 /to$is_args$args;
}
답변2
server_name
예시 보기공식 문서:
server {
server_name ~^(.*)\.example\.com$;
if ($query_string) {
return 301 $scheme://newdomain.example/categories/$1?$query_string;
}
return 301 $scheme://newdomain.example/categories/$1;
}
sub1.example.com은 www.newdomain.example/categories/sub1로 리디렉션됩니다.
www.newdomain.example
아니면 example.com
어느 것이 맞나요?
답변3
http://cat.example.com/post/1?comments=true
로 리디렉션하려면 http://example.com/categories/cat/post/1?comments=true
다음 구성을 사용할 수 있습니다.
server {
server_name ~^(.*)\.(example\.com)$;
return 301 $scheme://$2/categories/$1$request_uri;
}
캡처 그룹과 함께 정규식을 사용합니다.server_name
중복을 피하기 위해. 기본적으로 쿼리 문자열은 예제에서 유지되지 않지만 제안된 구성에서는 다음을 사용하여 유지됩니다.$request_uri
:
$request_uri
full original request URI (with arguments)