Nginx 리 셋 [Rewrite] 설정 및 예시

2829 단어 Linux
우선 Apache 의 Rewite 규칙 은 차이 가 크 지 않 지만, Nginx 의 Rewrite 규칙 은 Apache 보다 훨씬 간단 하고 유연 하 다. Nginx 는 if 로 조건 을 매 칭 할 수 있 고, 문법 규칙 은 C 와 유사 하 다.
if ($http_user_agent ~ MSIE) {
rewrite ^(.*)$ /msie/$1 break;
}
공식 문 서 는 여기 Rewrite Flags 를 클릭 하 세 요.Flags can be any of the following:
* last - completes processing of rewrite directives, after which searches for corresponding URI and location
* break - completes processing of rewrite directives
*redirect - returns temporary redirect with code 302; it is used if the substituting line begins with http://
* permanent - returns permanent redirect with code 301

last - 재 작성 명령 을 완료 한 후 해당 URI 와 위 치 를 검색 합 니 다.Apache 의 [L] 태그 에 해당 하 며, rewrite 가 완료 되 었 음 을 나타 내 며, 다음 규칙 과 일치 하지 않 습 니 다.break - Rewirte 를 중단 하고 계속 일치 하지 않 습 니 다.redirect - 임시로 방향 을 바 꾼 HTTP 상태 302 를 되 돌려 줍 니 다.permanent - 영구적 으로 방향 을 바 꾸 는 HTTP 상태 301 을 되 돌려 줍 니 다.
ZEND Framework 의 리 셋 규칙: 사례 1: 모든 리 셋 / index. php rewrite ^/(.*) /index.php?$1&; 사례 2: 파일 이나 디 렉 터 리 가 존재 하지 않 으 면 index. php if (!-e $request_filename) {
rewrite ^/(.*) /index.php?$1&;
}
로 리 셋
워드 프레스 의 리 셋 규칙: 사례 1:http://www.wemvc.com/12 다시 지정http://www.wemvc.com/index.php?p=12 if (!-e $request_filename) {
rewrite ^/(.+)$ /index.php?p=$1 last;
}
사례 2: zendframework 설정 과 비슷 합 니 다 if (!-e $request_filename) {
rewrite ^/(.*) /index.php?$1&;
}
다음은 Discuz 의 완전한 Rewrite for Nginx 규칙 if (!-f $request_filename) {
rewrite ^/archiver/((fid|tid)-[/w/-]+/.html)$ /archiver/index.php?$1 last;
rewrite ^/forum-([0-9]+)-([0-9]+)/.html$ /forumdisplay.php?fid=$1&page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)/.html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
rewrite ^/space-(username|uid)-(.+)/.html$ /space.php?$1=$2 last;rewrite ^/tag-(.+)/.html$ /tag.php?name=$1 last;
}
입 니 다.
파일 및 디 렉 터 리 일치, 그 중: - f 와! -f. 파일 이 존재 하 는 지 여 부 를 판단 하 는 데 사용 합 니 다. - d 와! -d 디 렉 터 리 존재 여 부 를 판단 하 는 데 사용 - e 와! -e. 파일 이나 디 렉 터 리 가 존재 하 는 지 판단 하 는 데 사용 합 니 다. - x 와! -x. 파일 이 실 행 될 수 있 는 지 여 부 를 판단 하 는 데 사용 합 니 다.
정규 표현 식 모든 기호 해석 ~ 대소 문자 구분 일치 ~ * 대소 문자 구분 없 음 일치! ~와!대소 문자 가 일치 하지 않 거나 대소 문자 가 일치 하지 않 는 것 을 구분 하고 패턴 과 일치 하지 않 는 것 을 가 져 옵 니 다.가 져 온 매 칭 은 생 성 된 Matches 집합 에서 얻 을 수 있 으 며, VBScript 에 서 는 SubMatches 집합 을 사용 하고, JScript 에 서 는 $0... $9 속성 을 사용 합 니 다.괄호 문자 와 일치 하려 면 '/ (' 또는 '/)' 를 사용 하 십시오. ^입력 문자열 의 시작 위치 와 일치 합 니 다. $입력 문자열 의 끝 위치 와 일치 합 니 다.

좋은 웹페이지 즐겨찾기