nginx rewrite (nginx url 주소 재 작성)

3373 단어 nginx
본 고 는 nginx 에서 url 주 소 를 재 작성 하 는 방법 을 설정 하고 필요 한 친구 가 참고 하 시기 바 랍 니 다.
nginx
URL 재 작성 을 위해 Rewrite 를 사용 합 니 다. Nginx 의 Rewrite 규칙 은 Pcre, perl 호 환 정규 표현 식 을 사용 합 니 다.
Nginx 의 Rewrite 기능 이 필요 하 다 면 Nginx 를 컴 파일 하기 전에 PCRE 라 이브 러 리 를 컴 파일 해 야 합 니 다.
먼저 nginx 의 if 명령 을 익 혀 보 세 요.규칙 문법:  

     if ($http_user_agent ~MSIE){ 
    
   rewrite ^(.*)$/msie/$1 break;
    }
    if (!-f$request_filename){
     rewrite ^/img/(.*)$/site/$host/images/$1 last;
     }

그 다음은 rewrite 문법 규칙: 변수 이름: 
    변수 이름 은 "=" 또는 "! =" 연산 자 를 사용 할 수 있 습 니 다.
     ~  기호 표시 대소 문자 구분 일치
     ~* 기호 표시 대소 문자 일치 구분 하지 않 음
     !~ 와!~ 와  !~ 상반
     -f 와! -f   파일 이 존재 하 는 지 여 부 를 판단 하 는 데 사용 합 니 다.
     -d 와! -d   디 렉 터 리 존재 여 부 를 판단 하 는 데 사용 합 니 다.
     -e 와! -e   파일 이나 디 렉 터 리 가 존재 하 는 지 판단 하 는 데 사용 합 니 다.
     -x 와! -x   파일 이 실 행 될 수 있 는 지 여 부 를 판단 하 는 데 사용 합 니 다.
 
 $1 ~ $9 위치 매개 변수 도 지원 합 니 다.
return 명령 예제: 방문 한 URL 이. sh. bash 로 끝나 면 상태 코드 403 을 되 돌려 줍 니 다. 

      location ~ .*\.(sh|bash)?$ 
    
  {
   return 403;
   } 

rewrite 명령 어 
 rewrite 명령 의 마지막 매개 변 수 는 flag 태그 이 고 지원 하 는 flag 표 시 는 주로 다음 과 같은 몇 가지 가 있 습 니 다.
 last: 아파 치 리드 (L) 태그 에 해당 하 며, rewrite 가 완료 되 었 음 을 나타 낸다.
 break;이 규칙 은 매 칭 이 완료 되면 매 칭 을 종료 하고 뒤의 규칙 과 일치 하지 않 습 니 다.
 redirect: 302 임시 방향 변경 을 되 돌려 줍 니 다. 브 라 우 저 주 소 는 이동 한 URL 주 소 를 표시 합 니 다.
 permanent: 301 을 되 돌려 영구적 으로 방향 을 바 꿉 니 다. 브 라 우 저 주소 표시 줄 에 이동 한 URL 주소 가 표 시 됩 니 다.
 last 와 break 는 URL 재 작성 을 실현 합 니 다. 브 라 우 저 주소 표시 줄 의 URL 주 소 는 변 하지 않 습 니 다.
인 스 턴 스: 접근 / b 를 / bbs 디 렉 터 리 로 이동 합 니 다: 

     location /b   { 
    
   autoindex  on;
  alias /usr/local/nginx/html/redhat;  
  rewrite ^/b/?$ /bbs permanent;
  }
 location /bbs {
    autoindex on;
 alias /usr/local/nginx/html/bbs;
 }

rewrite 규칙 은 실례 1 을 작성 합 니 다. / b 에 접근 할 디 렉 터 리 를 / bbs 핵심 문장 으로 다시 씁 니 다. rewrite ^/b/?$ /bbs permannet;2. 브 라 우 저 에 따라 결 과 를 얻 을 수 있 습 니 다. 

     if ($http_user_agent ~ Firefox) { 
    
  rewrite ^(.*)$ /firefox/$1 break;
  }
 
  if ($http_user_agent ~ MSIE) {
    rewrite ^(.*)$ /msie/$1 break;
   }
 if ($http_user_agent ~ Chrome) {
 rewrite ^(.*)$ /chrome/$1 break;
 }

3, 도 난 방지: 

      location ~*\.(gif|jpg|png|swf|flv)${ 
    
 valid_referers none blocked www.jbxue.com*.test.com;
 if ($invalid_referer)
  rewrite ^/(.*) http://www.jbxue.com/error.html 
   }

4, 도 메 인 이름 전환 실현: 

     server { 
    
 listen  80;
 server_name  jbxue.example.com;
 write ^(.*)$  http://zhang.example.com/$1 permanent;
 location / {
     root   html;
     index  index.html index.htm;
 }

관심 있 을 만 한 글:
nginx rewrite (nginx url 주소 재 작성) 의 설정 예제
nginx 에서 자주 사용 하 는 URL 재 작성 방법
nginx 설정 url 재 작성 및 사용자 정의 404 오류 페이지 등
Nginx 에서 자주 사용 하 는 URL 재 작성 방법
초 상세 NGINX URL 인 스 턴 스 설명 다시 쓰기

좋은 웹페이지 즐겨찾기