1, 재 구문 :
명령 구문 : 재기록 정규식 여분 [플래그];
기본값 : 없음
응용 프로그램 위치 : 서버, 위치, 경우
재 작성은 그가 플래그의 끝을 표시, 정규식 (정규 표현식)에 따라 내용과 일치하도록 교체로 이동, URL 재 지정 명령을 깨닫는 것이 중요하다
간단한 작은 예 :
1
|
rewrite ^/(.*) http:
//www
.baidu.com/ permanent;
# 匹配成功后跳转到百度,执行永久301跳转
|
일반적인 정규 표현식 :
문자 | 기술 |
\ | 후자는 문자 또는 특수 문자 또는 문자 문자 다시 참조로 표시된 |
^ | 입력 문자 문자열의 시작 위치를 일치 |
$ | 문자열의 입력 끝을 일치 |
* | 앞의 문자 0 번 이상 일치 |
+ | 문자열 전에 한 번 이상 일치 |
? | 0 또는 1을 위의 문자열을 일치 |
. | 모두에 "\ n"을 제외한 단일 문자와 일치 |
(무늬) | 괄호 안의 패턴 매칭 |
마지막 플래그 매개 변수를 다시 작성 :
표시 기호 | 설명 |
마지막 | 이 규칙의 경기 종료 후 새로운 위치 URI 일치 규칙을 계속 |
단절 | 이 규칙 경기의 종료 종료 후, 규칙과 일치하지 |
리디렉션 | 반환 (302) 임시 리디렉션 |
영구적 인 | 반환 301 영구 리디렉션 |
2, 응용 프로그램 시나리오 :
- URL, 모양 규범을 찾아 사용자를 조정
- 사용자가 더 좋은 경험을 할 수 있도록 검색 엔진 사이트의 콘텐츠를 만들려면
- 새로운 웹 사이트 도메인 이름을 교체 한 후
- 특정 변수에 따라, 카탈로그, 클라이언트 정보 점프
3, 일반적으로 (301)로 이동을 사용했을
우리가했던 전에이 별칭을 사용하는 방법으로 액세스 서로 다른 가상 호스트에서 동일한 자원을 해결하고, 지금 우리는이 작업을 수행 할 수있는 더 좋은 방법을 사용할 수 있으며, 그 점프로가는 길이다
또는, 예를 들어 www.brian.com 웹 호스팅을 사용하는 구성 파일 brian.conf 수정 :
[루트 @ Nginx에의 www_date] # 고양이 brian.conf 서버 {#는 서버 블록 점프을 추가 (80)를 듣고; 서버 _ brian.com; 재기록 ^ / http://www.brian.com/$1 영구 (*.); } 서버 { (80)를 듣고; 서버 _ www.brian.com; 위치 / { 루트 HTML / 브라이언; index.htm으로 index.html을 인덱스; } ACCESS_LOG 로그 / brian.log 메인 GZIP 버퍼 플러시 = 128K = 5S; 500 502 503 504 /50x.html을 error_page; 위치 = {/50x.html 루트 HTML; } }
문법을 확인합니다 :
[루트 @ Nginx에의 conf] # [루트 @ Nginx에의 conf] # ../sbin/nginx -t 의 nginx : 구문 /opt/nginx//conf/nginx.conf 구성 파일은 괜찮습니다 의 nginx : 구성 파일 /opt/nginx//conf/nginx.conf 테스트 성공
GR :
1
|
[root@Nginx conf]
# ../sbin/nginx -s reload
|
창 테스트 결과 :
4, 도메인 점프 :
뿐만 아니라 우리가 같은 가상 호스트 리소스 도메인 점프를 할 수있는, 당신은 우리의 다음 방문 brian.com www.baidu.com 도메인 이름이 페이지로 이동하는 경우에 다른 가상 호스트 이름 점프, 점프를 할 수 있습니다 :
수정 www.brian.com brian.conf 가상 호스트 설정 파일 :
[루트 @ Nginx에의 www_date] # 고양이 brian.conf 서버 { (80)를 듣고; 서버 _ brian.com; 위치 / { 루트 HTML / 브라이언; index.htm으로 index.html을 인덱스; } 경우 ($ HTTP_HOST ~ * "(^. *)") { 세트 $ 도메인 $ 1; ^ 다시 http://www.baidu.com 휴식 (*.) } ACCESS_LOG 로그 / brian.log 메인 GZIP 버퍼 플러시 = 128K = 5S; 500 502 503 504 /50x.html을 error_page; 위치 = {/50x.html 루트 HTML; } }
에 창 테스트 액세스 brian.com :( 이동합니다 www.baidu.com)