nginx rewrite 규칙 잡탕

10313 단어 nginx
대소 문자 일치
  • ~ 대소 문자 구분 일치
  • ~ * 대소 문자 구분 없 이 일치
  • !~와!각각 대소 문자 가 일치 하지 않 고 대소 문자 가 일치 하지 않 음
  • 을 구분 합 니 다.
    파일 및 디 렉 터 리 일치
  • - f 와! -f 파일 존재 여 부 를 판단 하 는 데 사용
  • - d 와! -디 렉 터 리 존재 여 부 를 판단 하 는 데 사용
  • - e 와! -e 파일 이나 디 렉 터 리 가 존재 하 는 지 판단 하 는 데 사용
  • - x 와! -x 파일 의 실행 여 부 를 판단 하 는 데 사용
  • flag 태그
  • last 는 아파 치 의 [L] 태그 에 해당 하 며 rewrite 완료
  • break 는 일치 하지 않 고 뒤의 규칙 과 일치 하지 않 습 니 다.
  • redirect 는 302 임시 주소 표시 줄 로 돌아 가면 점프 후의 주 소 를 표시 합 니 다.
  • permanent 가 301 로 영구적 으로 주소 표시 줄 을 바 꾸 면 점프 후의 주 소 를 표시 합 니 다.

  • 밤 을 들다
    #      www.csdn.net/abc/123/ -> www.csdn.net/web.do?name=123
    #if ( $host ~ "^www\.csdn\.net$") { 
    # rewrite ^/(.+)/(\d+)/ /$1.do?name=$2 permanent; 
    #}
    
    #          
    #if ($uri ~ "/pc/vote_appGetVote.do") {
    # rewrite ^ http://m.iwei.u-kor.cn/pc/vote_appGetVote.do last; 
    #}
    
    #           
    #if ( $arg_username = "abc" ) {
    # rewrite ^ /error.html break;
    #}
    
    #              
    #if ($http_user_agent ~* iPhone) {
    # rewrite ^(.*)$ /iphone/$1 break; 
    #}
    
    #              ,    error.html
    #if( !-e $request_filename ) {
    # rewrite ^/(.*)$ error.html last;
    #}
    
    #     if-else
    #set $web-flag "0";
    #if ($remote_addr ~ "192.168.1.2$"){
    # set $web-flag "1";
    #} 
    #if ($http_x_forwarded_for ~ "192.168.1.2"){
    # set $web-flag "1";
    #}
    #if ($web-flag = "1"){
    # proxy_pass http://127.0.0.1:8080;
    # break;
    #}
    
    #      
    #location ~* \.(gif|jpg|swf)$ {
    # valid_referers none blocked www.csdn.net blog.csdn.net;
    # if ($invalid_referer) {
    # rewrite ^/ http://$host/logo.png;
    # return 412;
    # break;
    # }
    # expires 30d;
    #}
    
    #       30 
    #location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ico|rar|txt|flv|mid|doc|ppt|xls|mp3|wma)$
    #{
    # expires 30d;
    #}
    

    nginx 변수
    변량
    설명 하 다.
    $args
    요청 중인 인자
    $content_length
    HTTP 요청 메시지 의 "Content - Length"
    $content_type
    요청 메시지 의 "Content - Type"
    $document_root
    현재 요청 한 루트 경로 설정 값
    $document_uri
    $uri 와 같 음
    $host
    요청 정보 에 있 는 "Host" 는 요청 에 Host 줄 이 없 으 면 설 정 된 서버 이름 과 같 습 니 다.
    $limit_rate
    연결 속도 제한
    $request_method
    "GET", "POST" 등 요청 방법
    $remote_addr
    클 라 이언 트 주소
    $remote_port
    클 라 이언 트 포트 번호
    $remote_user
    클 라 이언 트 사용자 이름, 인증 용
    $request_filename
    현재 요청 한 파일 경로 이름
    $request_body_file
    ??
    $request_uri
    요청 한 URI, 인자 포함
    $query_string
    $args 와 같 음
    $scheme
    사용 하 는 프로 토 콜, 예 를 들 어 http 또는 https, 예 를 들 어 rewrite ^ (. +) $scheme://example.com$1 redirect
    $server_protocol
    요청 한 프로 토 콜 버 전, "HTTP / 1.0" 또는 "HTTP / 1.1"
    $server_addr
    서버 주소, 서버 주 소 를 listen 으로 가리 키 지 않 으 면 이 변 수 를 사용 하면 주 소 를 얻 기 위해 시스템 호출 을 시작 합 니 다 (자원 낭비)
    $server_name
    요청 한 서버 이름
    $server_port
    요청 한 서버 포트 번호
    $uri
    요청 한 URI 는 초기 값 과 다 를 수 있 습 니 다. 예 를 들 어 방향 을 바 꾸 는 것 과 같은 것 입 니 다.
    정규 표현 식
    문자
    설명 하 다.
    \
    다음 문 자 를 특수 문자, 텍스트, 역방향 참조 또는 8 진 전의 문자 로 표시 합 니 다.예 를 들 어 'n' 은 문자 'n' 과 일치 합 니 다."" 줄 바 꿈 문자 와 일치 합 니 다.시퀀스 "\" 일치 "\", "(" 일치 "(").
    ^
    입력 문자열 이 시 작 된 위치 와 일치 합 니 다. RegExp 대상 의 Multiline 속성 이 설정 되 어 있 으 면 ^ "" 또는 "\ r" 다음 위치 와 일치 합 니 다.
    $
    입력 문자열 의 끝 에 있 는 위치 와 일치 합 니 다. RegExp 대상 의 Multiline 속성 이 설정 되 어 있 으 면 $는 "" 또는 "\ r" 이전 위치 와 일치 합 니 다.
    *
    0 회 또는 여러 번 앞의 문자 나 하위 표현 식 과 일치 합 니 다. 예 를 들 어 zo * 는 'z' 와 'zoo' 와 일치 합 니 다. * 는 {0,} 과 같 습 니 다.
    +
    한 번 또는 여러 번 앞의 문자 나 하위 표현 식 과 일치 합 니 다. 예 를 들 어 "zo +" 는 "zo" 와 "zoo" 와 일치 하지만 "z" 와 일치 하지 않 습 니 다. + 는 {1,} 과 같 습 니 다.
    ?
    0 회 또는 한 번 은 앞의 문자 나 하위 표현 식 과 일치 합 니 다. 예 를 들 어 "do (es)?" 는 "do" 또는 "does" 의 "do" 와 일치 합 니 다.? {0, 1} 과 같 습 니 다.
    {n}
    n 은 부정 정수 입 니 다. n 번 과 딱 일치 합 니 다. 예 를 들 어 "o {2}" 은 "Bob" 의 "o" 와 일치 하지 않 지만 "food" 의 두 "o" 와 일치 합 니 다.
    {n,}
    n 은 부정 정수 입 니 다. 최소한 n 번 은 일치 합 니 다. 예 를 들 어 "o {2,}" 은 "Bob" 의 "o" 와 일치 하지 않 고 "fooood" 의 모든 o 와 일치 합 니 다. "o {1,}" 은 "o +" 와 같 습 니 다. "o {0,}" 은 "o *" 와 같 습 니 다.
    {n,m}
    M 과 n 은 마이너스 정수 입 니 다. 그 중에서 n < = m. 최소 n 번, 최대 m 번 일치 합 니 다. 예 를 들 어 'o {1, 3}' 은 'foooood' 의 첫 세 번 째 o 와 일치 합 니 다. 'o {0, 1}' 은 'o?' 와 같 습 니 다. 주의: 쉼표 와 숫자 사이 에 빈 칸 을 삽입 할 수 없습니다.
    ?
    이 문 자 는 다른 한정 문자 (*, +,?, {n}, {n,}, {n, m}) 에 이 어 일치 하 는 모드 는 "욕심 이 아 닙 니 다" 입 니 다. "욕심 이 아 닌" 모드 는 검색 한 짧 은 문자열 과 일치 합 니 다. 기본 적 인 "욕심 많은" 모드 는 검색 한 긴 문자열 과 일치 합 니 다. 예 를 들 어 문자열 "oooo" 에서 "o +?" 는 하나의 "o" 와 만 일치 합 니 다., "o +" 는 모든 "o" 와 일치 합 니 다.
    .
    "" 를 제외 한 모든 문자 와 일치 합 니 다. "" 를 포함 한 임의의 문자 와 일치 하려 면 "[\ s \ S]" 와 같은 모드 를 사용 하 십시오.
    (pattern)
    pattern 과 일치 하 는 하위 표현 식 을 캡 처 합 니 다. 0. 9 속성 을 사용 하여 결과 '일치' 집합 에서 캡 처 된 일치 성 을 검색 할 수 있 습 니 다. 괄호 문자 () 와 일치 하려 면 '(' 또는 ')' 을 사용 하 십시오.
    (?:pattern)
    pattern 과 일치 하지만 일치 하 는 하위 표현 식 은 캡 처 되 지 않 습 니 다. 나중에 사용 할 일치 하 는 것 을 저장 하지 않 습 니 다. 이것 은 "or" 문자 (
    (?=pattern)
    선행 검색 을 예측 하 는 하위 표현 식 을 실행 합 니 다. 이 표현 식 은 pattern 과 일치 하 는 문자열 의 시작 점 에 있 는 문자열 과 일치 합 니 다. 캡 처 되 지 않 은 문자열 입 니 다. 나중에 사용 할 일치 하 는 문자열 을 캡 처 할 수 없습니다. 예 를 들 어 'Windows (? = 95)'
    (?!pattern)
    역방향 예측 선행 검색 을 실행 하 는 하위 표현 식 입 니 다. 이 표현 식 은 pattern 과 일치 하지 않 는 문자열 의 시작 점 에 있 는 검색 문자열 과 일치 합 니 다. 캡 처 되 지 않 은 문자열 입 니 다. 나중에 사용 할 일치 하 는 문자열 을 캡 처 할 수 없습니다. 예 를 들 어 'Windows (?! 95
    x|y
    x 또는 y 와 일치 합 니 다.
    [xyz]
    문자 집합 입 니 다. 포 함 된 모든 문자 와 일치 합 니 다. 예 를 들 어 "[abc]" 는 "plain" 의 "a" 와 일치 합 니 다.
    [^xyz]
    역방향 문자 집합 입 니 다. 포함 되 지 않 은 모든 문자 와 일치 합 니 다. 예 를 들 어 "[^ abc]" 는 "plain" 의 "p" 과 일치 합 니 다.
    [a-z]
    문자 범위 입 니 다. 지정 한 범위 내의 모든 문자 와 일치 합 니 다. 예 를 들 어 "[a - z]" 는 "a" 에서 "z" 범위 내의 모든 소문 자 와 일치 합 니 다.
    [^a-z]
    역방향 범위 문자 입 니 다. 지정 하지 않 은 범위 내 에 있 는 모든 문자 와 일치 합 니 다. 예 를 들 어 "[^ a - z]" 는 "a" 에서 "z" 범위 내 에 있 지 않 은 모든 문자 와 일치 합 니 다.
    \b
    글자 경계, 즉 글자 와 빈 칸 사이 의 위치 가 일치 합 니 다. 예 를 들 어 "er \ b" 는 "never" 의 "er" 와 일치 하지만 "verb" 의 "er" 와 일치 하지 않 습 니 다.
    \B
    비 글자 경계 가 일치 합 니 다. "er \ B" 는 "verb" 의 "er" 와 일치 하지만 "never" 의 "er" 와 일치 하지 않 습 니 다.
    \cx
    x 지시 와 일치 하 는 제어 문자 입 니 다. 예 를 들 어 \ cM 은 control - M 이나 리 턴 문자 와 일치 합 니 다. x 의 값 은 A - Z 또는 a - z 사이 에 있어 야 합 니 다. 그렇지 않 으 면 c 가 'c' 문자 자체 라 고 가정 합 니 다.
    \d
    숫자 문자 가 일치 합 니 다. [0 - 9] 와 같 습 니 다.
    \D
    비 숫자 문자 가 일치 합 니 다. [^ 0 - 9] 와 같 습 니 다.
    \f
    페이지 바 꾸 기 문자 가 일치 합 니 다. \ x0c 와 \ cL 과 같 습 니 다.
    줄 바 꿈 문자 가 일치 합 니 다. \ x0a 와 \ cJ 와 같 습 니 다.
    \r
    리 턴 문자 와 일치 합 니 다. \ x0d 와 \ cM 과 같 습 니 다.
    \s
    빈 칸, 탭 문자, 페이지 바 꾸 기 등 모든 공백 문자 와 일치 합 니 다. [\ f \ r \ t \ v] 와 같은 효 과 를 가 집 니 다.
    \S
    공백 문자 가 아 닌 문자 와 일치 합 니 다. [^ \ f \ r \ t \ v] 와 같은 효 과 를 가 집 니 다.
    \t
    탭 문자 가 일치 합 니 다. \ x09 와 \ cI 와 같은 효 과 를 가 집 니 다.
    \v
    수직 탭 문자 가 일치 합 니 다. \ x0b 와 \ cK 와 같은 효 과 를 가 집 니 다.
    \w
    밑줄 친 것 을 포함 하여 모든 글자 와 일치 합 니 다. "[A - Za - z0 - 9]" 와 같은 효 과 를 가 집 니 다.
    \W
    단어 가 아 닌 문자 와 일치 합 니 다. "[^ A - Za - z0 - 9]" 와 같 습 니 다.
    \xn
    n 과 일치 합 니 다. 여기 있 는 n 은 16 진 전의 코드 입 니 다. 16 진 전의 코드 는 두 자릿수 길이 여야 합 니 다. 예 를 들 어 "\ x41" 은 "A" 와 일치 합 니 다. "\ x041" 은 "\ x04" & "1" 과 같 습 니 다. 정규 표현 식 에서 ASCII 코드 를 사용 할 수 있 습 니 다.
    um
    num 과 일치 합 니 다. 이 num 은 정수 입 니 다. 일치 하 는 역방향 인용 을 캡 처 할 때 까지 입 니 다. 예 를 들 어 "(.) \ 1" 은 두 연속 적 인 같은 문자 와 일치 합 니 다.
    8 진 전의 코드 나 역방향 인용 을 표시 합 니 다. 앞 에 n 개의 캡 처 서브 표현 식 이 있 으 면 n 은 역방향 참조 입 니 다. 그렇지 않 으 면 n 이 8 진수 (0 - 7) 라면 n 은 8 진 전의 코드 입 니 다.
    m
    8 진 전의 코드 나 역방향 인용 을 표시 합 니 다. m 앞 에 nm 캡 처 서브 표현 식 이 있 으 면 nm 는 역방향 참조 입 니 다. m 앞 에 n 개 이상 캡 처 되 어 있 으 면 n 은 역방향 참조 이 고 뒤 에는 문자 m 가 있 습 니 다. 두 가지 앞의 상황 이 존재 하지 않 으 면 m 는 8 진 nm 와 일치 합 니 다. 그 중에서 n 과 m 는 8 진 숫자 (0 - 7) 입 니 다.
    ml
    n 이 8 진수 (0 - 3) 이 고 m 와 l 이 8 진수 (0 - 7) 일 때 8 진수 전의 코드 nml 와 일치 합 니 다.
    \un
    n 과 일치 합 니 다. 그 중에서 n 은 4 비트 16 진수 로 표 시 된 유 니 코드 문자 입 니 다. 예 를 들 어 \ u00A 9 는 저작권 기호 와 일치 합 니 다 (©)。

    좋은 웹페이지 즐겨찾기