
Estou tentando redirecionar URLs com o Ninx, mas estou lutando para acertar:
example.com/{dynamic1}/foo/bar/{dynamic2}
paraexample.com/{dynamic1}/bar/{dynamic2}
basicamente estou tentando remover a /foo/
parte do URL.
eu tentei o seguinte:
location ~* ^/(.*)/foo/bar/(.*)$ {
return 302 ^/$1/bar/$2?$args;
}
e também:
location ~ ^/([^/]*)/foo/bar/(.*)$ {
return 302 ^/$1/bar/$2?$args;
}
mas isso gera o erro 414 Request-URI Too Large
e o URL acaba sendo (abreviado para maior clareza):
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?
O que estou fazendo de errado?
Observe que, assim que acertar, substituirei 302 por 301.
Responder1
Você colocou um sinal de intercalação no início do caminho do URL de destino para o qual parece que pretendia redirecionar. Isso não pertence a esse lugar e é por isso que %5E
aparece repetidamente.