nginx URL 재 작성 (rewrite) 설정
URL , 301 URL
1. Nginx URL 재 작성 (rewrite) 안내
apache web ,rewrite RUL 。
Nginx rewrite PCRE , perl 。
nginx rewrite , PCRE
2. rewrite 문법 형식 및 매개 변수 문법:
rewrite URL , regex ( ) ,
replacement, flag 。
rewrite [flag];
flag
: error_log
:perl
: replacement
flag :rewrite flag
rewrite :
server,location,if
flag :
last # , location URI
break # ,
redirect # 302 , URL
permanent # 301 , URL
2.1nginx rewrite 변 수 는 HTTP 요청 헤더 정보, 브 라 우 저 호스트 이름, URL 과 일치 하 는 데 사 용 됩 니 다.
HTTP headers:HTTP_USER_AGENT, HTTP_REFERER, HTTP_COOKIE, HTTP_HOST, HTTP_ACCEPT;
connection & request: REMOTE_ADDR, QUERY_STRING;
server internals: DOCUMENT_ROOT, SERVER_PORT, SERVER_PROTOCOL;
system stuff: TIME_YEAR, TIME_MON, TIME_DAY。
:
HTTP_USER_AGENT , ;
HTTP_REFERER , ;
HTTP_COOKIE , ;
HTTP_HOST ServerName ;
HTTP_ACCEPT MIME ;
REMOTE_ADDR IP
QUERY_STRING URL ;
DOCUMENT_ROOT ;
SERVER_PORT ;
SERVER_PROTOCOL ;
TIME_YEAR ;
TIME_MON ;
TIME_DAY ;
3. 예
3.0 어 려 운 장면
:
uri "_", "_" proxy_pass ,
,
rewrite '^(\S+) +(\S+)(.*)' $1_$2$3 last;
3.1demo01
rewrite ^/(.*) http://www.zy.com/$1 permanent;
:
rewrite , rewrite 。
regex ^/(.*) , , 。
replacement http://www.zy.com/$1。 $1 regex () , URL。
flag permanent 301 , http://www.zy.com/$1 。
3.2demo02
vi
vi conf/vhost/www.abc.com.conf
1
server {
listen 80;
server_name abc.com;
rewrite ^/(.*) http://www.abc.com/$1 permanent;
}
server {
listen 80;
server_name www.abc.com;
location / {
root /data/www/www;
index index.html index.htm;
}
error_log logs/error_www.abc.com.log error;
access_log logs/access_www.abc.com.log main;
}
2
server {
listen 80;
server_name abc.com www.abc.com;
if ( $host != 'www.abc.com' ) {
rewrite ^/(.*) http://www.abc.com/$1 permanent;
}
location / {
root /data/www/www;
index index.html index.htm;
}
error_log logs/error_www.abc.com.log error;
access_log logs/access_www.abc.com.log main;
}
3.3 zy. com 을 www. zy. com 으로 건 너 뛰 기
if ($host = zy.com' ) {
# $1 regex () , URL。
rewrite ^/(.*)$ http://www.zy.com/$1 permanent;
}
3.4 www. zy. com 방문 www. test. com / index 01. html
rewrite ^/$ http://www.test.com/index01.html permanent;
3.5 접근 / zy / test 01 / new index. html 로 이동, 브 라 우 저 주소 변경
rewrite ^/zy/test01/$ /newindex.html last;
3.6 다 중 도 메 인 이름 이 www. zy. com 으로 건 너 뛰 기
if ($host != ‘www.jfedu.net’ ) {
rewrite ^/(.*)$ http://www.zy.com/$1 permanent;
}
3.7 접근 파일 과 디 렉 터 리 가 index. php 로 이동 하지 않 습 니 다.
if ( ! -e $request_filename ) {
rewrite ^/(.*)$ /index.php last;
}
3.8 디 렉 터 리 교환 / xxxx / 123456 = = = > / xxxx? id = 123456
rewrite ^/(.+)/(\d+) /$1?id=$2 last;
3.9 판단 브 라 우 저 User Agent 이동
if( $http_user_agent ~ MSIE) {
rewrite ^(.*)$ /ie/$1 break;
}
3.10. sh,. flv,. mp3 를 파일 접미사 이름 으로 하 는 파일 에 접근 하 는 것 을 금지 합 니 다.
location ~ .*\.(sh|flv|mp3)${
return 403;
}
3.11 이동 사용자 접근 을 이동 단 으로 전환
if ( $http_user_agent ~* "(Android)|(iPhone)|(Mobile)|(WAP)|(UCWEB)" ){
rewrite ^/$ http://m.jfedu.net/ permanent;
}
3.12 방문 / 10690 / zy / 123 에서 / index. php 로 넘 어 갑 니까? tid / 10690 / items = 123, [0 - 9] 는 임의의 숫자 를 표시 하고 + 여러 개 를 표시 합 니 다. (. +) 는 여러 글자
rewrite ^/([0-9]+)/zy/(.+)$ /index.php?tid/$1/items=$2 last;
3.13 일치 URL 접근 문자열 이동
if ($args ~* tid=13){
return 404;
}
4. rewrite 기업 응용 장면
>> URL, , 。
>> , URL 。
>> , 。 , 360buy.com jd.com
>> 、 、 URL
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.