답변:
server_name 은 .mydomain.com 구문을 사용하여 접미어 일치를 지원합니다.
server {
server_name .mydomain.com;
rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}
또는 0.9.1 이상 버전 :
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
listen
지정되지 않은 경우 지시문의 기본값은 포트 80입니다. 실제로는 일반적인 것보다 조금 더 복잡합니다. 자세한 내용은 nginx 구성 문서 를 참조하십시오.
?
말에 달성?
rewrite
과 return 301 $scheme://www.adifferentdomain.com$request_uri;
?
$request_uri
쿼리 문자열이 이미 있으므로 다시 추가 할 필요가 없습니다. return 301
구문은 새로운, 그리고 두 가지 방법 사이에 동작의 차이가 없을 것,하지만 난 원래이 질문에 대답 할 때 나는 안전 구문 갔다, 그래서 많은 분포, 필요한 버전을 가지고 있지 않았다.
server {
server_name .mydomain.com;
return 301 http://www.adifferentdomain.com$request_uri;
}
http://wiki.nginx.org/HttpRewriteModule#return
과
가능한 경우 다시 쓰기 모듈을 사용하는 이유는 return
무엇입니까? 기술적으로 말하면, 여기에서 읽을 수return
있듯이 다시 쓰기 모듈의 일부 이지만이 스 니펫은 읽기가 더 쉽습니다.
server {
server_name .domain.com;
return 302 $scheme://forwarded-domain.com;
}
301 리디렉션을 제공 할 수도 있습니다.
return 302 $scheme://forwarded-domain.com$request_uri;
HTTPRewriteModule을 통해 작동합니다 합니다.
www.example.com에서 example.com으로 다시 쓰는 예제 :
server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
}
server_name example.com www.example.com;
입니다.
"domain1.com"에 대한 요청을 "domain2.com"으로 리디렉션하려면 다음과 같은 서버 블록을 만들 수 있습니다.
server {
listen 80;
server_name domain1.com;
return 301 $scheme://domain2.com$request_uri;
}
listen 443;
임시 리디렉션
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;
영구 리디렉션
rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;
특정 사이트에 대한 nginx 구성 파일에서 :
server {
server_name www.example.com;
rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;
}
서버 {} 블록 내에 if 조건을 간단히 작성할 수 있습니다.
server {
if ($host = mydomain.com) {
return 301 http://www.adifferentdomain.com;
}
}