
Necesito que Nginx responda a una solicitud como
https://example.org/proxy/?url=https://othersite.com/path/file.php%%a=test123%%b=321tset
o un método similar, como
https://example.org/proxy/https://othersite.com/path/file.php?a=test123&b=321tset
enviando la solicitud a
https://othersite.com/path/file.php?a=test123&b=321tset
¿Hay alguna manera de hacer esto reescribiendo o con una regla diferente? Cualquier ayuda sería apreciada. Gracias de antemano.
Respuesta1
Bienvenido a SE. Esas redirecciones se pueden realizar mediante if
declaraciones y no lo he probado utilizando el proxy nginx.
Agregue los siguientes if
bloques a su bloque Nginx server
para redirigirlos según sea necesario
server {
...
...
#For https://example.org/proxy/?url=https://othersite.com/path/file.php%%a=test123%%b=321tset
if ($request_uri ~ ^/proxy/\?url=(.*)$) {
return 301 $1;
}
#For https://example.org/proxy/https://othersite.com/path/file.php?a=test123&b=321tset
if ($request_uri ~ ^/proxy/(https\:\/\/(.*))$) {
return 301 $1;
}
}
Actualizar:
Puedes usar proxy usando location
bloques en lugar de usarif
location ~ /proxy/\?url=(.*)$ {
proxy_pass $1;
proxy_set_header Host $host;
}
location ~ /proxy/https\:\/\/(.*)$ {
proxy_pass $1;
proxy_set_header Host $host;
}