
Ninx를 사용하여 URL을 리디렉션하려고 하는데 올바르게 수행하는 데 어려움을 겪고 있습니다.
example.com/{dynamic1}/foo/bar/{dynamic2}
에게example.com/{dynamic1}/bar/{dynamic2}
/foo/
기본적으로 URL의 일부를 제거하려고 합니다 .
나는 다음을 시도했습니다 :
location ~* ^/(.*)/foo/bar/(.*)$ {
return 302 ^/$1/bar/$2?$args;
}
그리고 또한:
location ~ ^/([^/]*)/foo/bar/(.*)$ {
return 302 ^/$1/bar/$2?$args;
}
하지만 이렇게 하면 오류가 발생 414 Request-URI Too Large
하고 URL은 다음과 같이 됩니다(명확성을 위해 단축됨).
dynamic1/cams/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/%5E/dynamic1/bar/dynamic2?
내가 도대체 뭘 잘못하고있는 겁니까?
이 권리를 얻으면 302를 301로 대체할 것입니다.
답변1
리디렉션하려는 대상 URL 경로의 시작 부분에 캐럿을 배치했습니다. 이것은 거기에 속하지 않으며 %5E
반복해서 나타나는 이유입니다.