Nginx 에서 if 다 중 판단 쓰기 실현
if ($request_uri ~ "xxx.php?xxx") {
set $iftmp Y;
}
if ($http_user_agent ~ "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)") {
set $iftmp "${iftmp}Y";
}
if ($iftmp = YY) { return 400;}
location / {
proxy_pass https://172.0.0.11;
}
중점 1 set $iftmp Y 는 iftmp 를 Y 로 설정 합 니 다. set 명령 은 큰 하 이 라이트 입 니 다.
중요 한 것 은 set 부분 set $iftmp "${iftmp} Y" 가 set 에 있 습 니 다. ${iftmp} Y 는 매개 변 수 를 한 번 중첩 합 니 다. ${iftmp} 은 큰 하 이 라이트 입 니 다.
$request_uri 는 클 라 이언 트 가 요청 한 전체 요청 경로 입 니 다. $httpuser_에이전트 는 사용자 측 에서 요청 한 브 라 우 저 매개 변수 입 니 다. 위의 if 판단 은 간단 한 cc * * 의 원형 입 니 다. 일반적인 cc * * * 는 * * 페이지 를 고정 시 킨 다음 에 브 라 우 저 매개 변수 도 대부분 변 하지 않 습 니 다. 현재 두 개의 if 매개 변수 가 동시에 만족 한 후에 세 번 째 if 는 요청 단 에 400 오 류 를 직접 되 돌려 줍 니 다. 이렇게 하면 간단 한 여과 cc * * * 정상 페이지 로 요청 합 니 다.위의 사례 에 따라 조롱박 을 그 려 다른 응용 을 할 수 있다.
만약 에 우리 가 / admin / 경 로 를 rewrite 해 야 한다 고 가정 하지만 동시에 / admin / p 를 제거 해 야 합 니 다.w_picpaths / 경 로 는 이 경로 에 대해 rewrite 를 하지 않 습 니 다. 아래 의 해결 방법 을 사용 할 수 있 습 니 다.
set $doRewrite "0";
if ($request_uri ~ ^/admin/) {
set $doRewrite "1";
}
if ($request_uri ~ ^/admin/p_w_picpaths/) {
set $doRewrite "0";
}
if ($doRewrite = "1") {
// do rewrite
}
다음으로 전송:https://blog.51cto.com/chenwenming/1390042
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.