아파 치 Rewrite 규칙 바 꾸 기 흔 한 설정
2. 예 를 들 어 설명 한다. 예 1. 다음은 가상 호스트 에서 정 의 된 규칙 입 니 다.클 라 이언 트 가 요청 한 호스트 접 두 사 를 www. alibaba. cn 과 70.40.213.183 이 아 닌 호스트 접두사 로 옮 기 는 기능 입 니 다.http://www.alibaba.com같은 내용 의 웹 페이지 에 여러 개의 도 메 인 이름 이 있 는 것 을 피 합 니 다. 예 를 들 어http://alibaba.com。
쓰다
NameVirtualHost 70.40.213.183:80
ServerAdmin duanxf@ alibaba.com
DocumentRoot "/web"
ServerName alibaba.com
RewriteEngine on \ # rewirte 기능 열기
RewriteCond %{HTTP_HOST} \!^www. alibaba. com \ [NC \] \ # 클 라 이언 트 가 요청 한 호스트 의 접 두 사 는 www. alibaba. com 이 아 닙 니 다. 그 중에서 \ [NC \] 는 대소 문 자 를 무시 한 다 는 뜻 입 니 다.
RewriteCond %{HTTP_HOST}\!^70.40.213.183 \ \ [NC \] \ # 클 라 이언 트 가 요청 한 호스트 의 접 두 사 는 70.40.213.183 이 아 닙 니 다. 그 중에서 \ [NC \] 는 대소 문 자 를 무시 한 다 는 뜻 입 니 다.
RewriteCond %{HTTP_HOST} \!^$ #클 라 이언 트 가 요청 한 호스트 의 접두사 가 비어 있 지 않 음 을 설명 합 니 다.
RewriteRule \^(.*) http://www.alibaba.com/ [L] \ # 클 라 이언 트 가 요청 한 호스트 의 접두사 가 위 조건 에 맞 으 면 바로 이동 한 다 는 뜻 입 니 다.http://www.alibaba.com/, [L] 은 재 작성 작업 을 즉시 중단 하고 다른 재 작성 규칙 을 적용 하지 않 는 다 는 것 을 의미한다.이 곳 의. \ * 은 모든 URL 에 줄 바 꿈 문자 가 포함 되 어 있 지 않 음 을 말 합 니 다. () 괄호 의 기능 은 모든 문 자 를 표시 하여 뒤의 응용 에 편리 하도록 하 는 것 입 니 다. 바로 앞의 (. *) 문 자 를 참조 하 는 것 입 니 다.
3.Apache mod_rewrite 규칙 재 작성 표지 일람 1) R [= code] (force redirect) 외부 리 셋 강제
대체 문자열 에 강제로 추가 하기http://thishost\ [: thisport \] / 접 두 사 를 외부 URL 로 바 꿉 니 다. code 가 지정 되 지 않 으 면 결 성 된 302 HTTP 상태 코드 를 사용 합 니 다.
2) F (force URL to be forbidden) 에서 URL 을 사용 하지 않 고 403 HTTP 상태 코드 를 되 돌려 줍 니 다.
3) G (force URL to be gone) 는 URL 을 GONE 로 강제 하고 410 HTTP 상태 코드 를 되 돌려 줍 니 다.
4) P (force proxy) 는 프 록 시 리 트 윗 을 강제로 사용 합 니 다.
5) L (last rule) 은 현재 규칙 이 마지막 규칙 임 을 나타 내 고 분석 후 규칙 의 재 작성 을 중단 합 니 다.
6) N (next round) 은 첫 번 째 규칙 부터 재 작성 과정 을 다시 실행 합 니 다.
7) C (chained with next rule) 는 다음 규칙 과 연 결 됩 니 다. 규칙 이 일치 하면 정상적으로 처리 합 니 다. 이 플래그 가 잘못 되 었 습 니 다. 일치 하지 않 으 면 아래 의 모든 관련 규칙 을 건 너 뜁 니 다. 8) T = MIME 타 입 (force MIME type) 강제 MIME 타 입
9) NS (used only if no internal sub - request) 는 내부 하위 요청 이 아 닌 경우 에 만 사 용 됩 니 다.
10) NC (no case) 대소 문자 구분 없 음
11) QSA (query string append) 추가 요청 문자열
12) NE (no URI escaping of output) 에서 전의 특수 문 자 를 출력 하지 않 음
예 를 들 어 RewriteRule / foo / (. *) / bar? arg = P1% 3d $1 [R, NE] 은 / foo / zoo 를 / bar? arg = P1 = zoo 로 정확하게 변환 할 수 있 습 니 다.
13) PT (pass through to next handler) 를 다음 처리 에 전달 합 니 다.
예 를 들 면:
RewriteRule ^ / abc (. *) / def $1 [PT] \ # 는 / def 규칙 처리 에 맡 깁 니 다.
Alias /def /ghi
14) S = num (skip next rule (s) num 규칙 건 너 뛰 기
15) E = VAR: VAL (set environment variable) 환경 변수 설정
URL 재 설정 예 1:
동시에 다음 두 가지 요구 에 도달 합 니 다.
1. 사용http://www.alibaba.com/home.html 방문 하 러 오다http://www.alibaba.com/home/
2. 사용http://powercctv.alibaba.com 방문 하 러 오다http://www.aliaba.com/user.html?username=powercctv 기능
쓰다
RewriteEngine On
RewriteCond %{HTTP_HOST}
^www.alibaba.com
RewriteCond %{REQUEST_URI} !^home.html$
RewriteCond %{REQUEST_URI}.html$
RewriteRule (.*).html$ [http://www.alibaba.com/$1/] [R]
RewriteCond %{HTTP_HOST} !^www.alibaba.com
RewriteRule ^(.+) %{HTTP_HOST}[C]
RewriteRule ^([^.]+).aliaba.com [http://www.alibaba.com/user.html?username=$1]
예 2:
사칭 문제.
만약: 우리 의 url 에 사칭 이 있다 면, 이것 은 비교적 고 통 스 러 울 것 이다.일반적인 url 점프 는 전체 일치 가 짝 퉁 에 문제 가 있 을 수 있 습 니 다.우리 url 은 가짜 로 시작 하기 때 문 입 니 다.이 럴 때 는 rewritecond 로 매 칭 해 야 합 니 다.
쓰다
RewriteCond %{QUERY_STRING} ^action=mcweb\:(.*)
RewriteRule \^/mcweb/contact.htm(.*)$ ${message_alibaba_com}/msgsend/contact.htm?action=%1 [L,R,NE]
Apache 의 점프 설명 을 추가 하지 않 으 면 문자열 뒤에 있 는 인 자 를 모두 새 점프 URL 에 추가 합 니 다.예 를 들 어 위 에서 mcweb / contact. htm 로 이동 하 는 모든 링크 물음표 뒤의 매개 변수 와
RewriteCond %{QUERY_STRING} ^action=mcweb\:-( .*)
쓰다
RewriteCond %{QUERY_STRING} ^action=mcweb\:-( .*)
일치 합 니 다. 일치 하 는 것 을 발견 하면 message. alibaba. com / msgssend / contact. htm? action = 의 뒤쪽% 1 이 (가) 일치 하 는 다음 문자열 입 니 다.여러 개 있 으 면 몇 개 (. *)% n 을 더 하면 됩 니 다. Apache 의 rewrite 이동 과 우선 순위 가 있 습 니 다. ^ / mcweb / contact. htm (. *) $mcweb 를 포함 한 모든 방문 contact. htm 을 / msgssend / contact. htm 로 옮 기 고 싶 습 니 다. 동시에 모든 action = mcweb: 이러한 url 도 모두 이동 합 니 다.
쓰다
message. alibaba. com / msgssend / contact. htm? action = 이 url 은 이 설정 뒤에 줄 을 추가 해 야 합 니 다.
RewriteRule ^/mcweb/contact.htm ${message_alibaba_com}/msgsend/contact.htm [L,R,NE]
만약 우리 가 일치 할 때 짝 퉁 만 일치 해 야 한다 면: 그것 은 비교적 간단 하 다.
쓰다
RewriteRule ^wiki/(.*:.*) wiki/index.php?title=$1 [L]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 파일 압축 및 압축 풀기파일 의 간단 한 압축 과 압축 해 제 를 실현 하 였 다.주요 테스트 용 에는 급 하 게 쓸 수 있 는 부분 이 있 으 니 불편 한 점 이 있 으 면 아낌없이 가르쳐 주 십시오. 1. 중국어 문 제 를 해 결 했 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.