일부 매개 변수를 제거 :의 nginx 리턴 (301) 내가 일부 매개 변수가</em> 사용의 nginx 내가 URL은 다음과 같이 재 지정하려면 예를 들어 301</p> <p>을 반환 <em>을 제거하기 위해 노력하고있어
https://www.example.com/one?wanted=1&unwanted1=1
->https://www.example.com/one?wanted=1
https://www.example.com/one?unwanted1=1
->https://www.example.com/one
https://www.example.com/one?unwanted1=1&unwanted2=2&unwanted3=3
->https://www.example.com/one
... 그래서
에 나는 (주의 대신 수익의 재 작성 사용)이 코드 몇 가지 실험을했다 : 원치 않는 매개 변수 중 하나만이있을 때 가if ($request_uri ~ "([^\?]*)\?(.*)unwanted=([^&]*)&?(.*)") {
set $args $2$4;
rewrite "^" $scheme://$host$uri permanent;
}
이 잘 작동합니다.
각 매개 변수에 대해 반복하려고했으나 이제는 여러 번의 리디렉션을 수행하고 더 이상 필요하지 않은 경우 (단지 하나의 arg 만 남았 음) "&"을 정리하지 않으므로 최적의 방식으로 작동하지 않습니다.
... 또한 나는 이런 종류의 상황에서 선호되는 방법이라고 생각하기 때문에 재 작성 대신 반품 301을 사용하는 것을 선호합니다. 301을 반환하기 위해 마지막 줄을 적용하려고 시도했지만 나에게 적합하지 않았습니다.
어떻게하면 올바르게 수행 할 수 있습니까?
[nginx 301 리다이렉트 (질의 문자열 포함)] 가능한 복제본 (https://stackoverflow.com/questions/40810219/nginx-301-redirect-with-query-string) –
나는 당신이 질문을 수정하십시오 (어떤 이유로 알림이 누락되었습니다). 나는 이것에 대해 다시 한번 살펴볼 것이다. –
질문 자체를 편집하지 않았습니다. 나는 당신의 대답에 대한 코멘트를 편집했다. 불행히도 이러한 주석은 올바르게 형식화 될 수 없으며, 주석을 게시하고 [편집] 5 분 밖에 남지 않습니다. 그래서 ... 정말 조직되지 않았습니다 :) – Alex