2014-10-15 4 views
1

에서 특정 쿼리 매개 변수를 제거 모양은 다음과 같습니다.Nginx에 리디렉션의 내가 같은 URL 있다고 가정 해 봅시다 URL

http://www.example.com/something.html?abc=one&def=two 

이 특정 매개 변수는 다른 매개 변수와 관련하여 URL의 어느 위치 에나있을 수 있습니다. 리디렉션은 관계없이 작동해야합니다.

달성 할 수 있습니까?

+0

가능한 복제본 [nginx 다시 작성 내에서 매개 변수 제거] (http://stackoverflow.com/questions/9641603/remove-parameters-within-nginx-rewrite) – Justin

+0

아니요 그 질문에서 OP는 특정 쿼리 매개 변수와 달리 URL에서 모든 쿼리 매개 변수를 제거하도록 요청합니다. – Hitesh

+0

lua 스크립트 (이것은 linux 모듈을 nginx에 설치해야 함)와 같은 스크립트에서만 수행 할 수 있습니다. 예 : https://www.ruby-forum.com/topic/4417604 – JasonYang

답변

2

당신은 내가 여기에 유사한 일을하고 싶어 이런 식으로

if ($request_uri ~ "([^\?]*)\?(.*)unwanted=([^&]*)&?(.*)") { 
    set $original_path $1; 
    set $args1 $2; 
    set $unwanted $3; 
    set $args2 $4; 
    set $args ""; 

    rewrite^"${original_path}?${args1}${args2}" permanent; 
} 
1

것을 달성 할 수는 원래의 질문의 맥락에 다시 ammended 결과입니다

(정규식은 밀로스 요 바노비치의 대답을 기반으로)
if ($request_uri ~ "([^\?]*)\?(.*)unwanted=([^&]*)&?(.*)") { 
    set $args $2$4; 

    rewrite "^" $scheme://$host$uri permanent; 
} 

이렇게하면 변수 하나만 설정되고 업데이트 된 $ args가 비어 있으면 원치 않는 것은 없습니까? 서버가 그 자체를 처리하는 것처럼 URL의 끝에

관련 문제