Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

417
Vistas
Retire el único parámetro de consulta GET del registro de acceso de Nginx y conserve todos los demás

He visto preguntas similares, pero no específicamente esta, no quiero dejar de registrar URL con un parámetro , quiero registrarlas sin él.

URL inicial de ejemplo:

example.com/dir/file.php?important=1&ignore=random&others=yes

Cómo debe registrarse como:

 example.com/dir/file.php?important=1&others=yes

Básicamente, quiero filtrar el parámetro 'ignorar' y mantener el resto intacto, si está presente.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

deberá crear un formato de registro personalizado, que incluya una variable personalizada y que no incluya la variable $request . Por ejemplo:

 log_format main '$remote_addr - $remote_user [$time_local] "$custom_request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main;

Estoy agregando la variable "$custom_request" , que no existe. Así que necesitas crearlo primero. Y puede crearlo en función de $request , usando expresiones regulares para eliminar lo que no desea.

 set $custom_request $request; if ($request_uri ~ "([^\?]*)\?(.*)ignore=([^&]*)&?(.*)") { set $original_path $1; set $args_before $2; set $unwanted $3; set $args_after $4; set $args ""; set $custom_request "${original_path}?${args_before}${args_after}"; }
over 4 years ago · Santiago Trujillo Denunciar

0

Actualización a la respuesta de Carlos: Igual:

 log_format main '$remote_addr - $remote_user [$time_local] "$custom_request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main;
Diferente:
 set $custom_request ""; if ($request_uri ~ "([^\?]*)\?(.*)auth=([^&]*)&?(.*)") { set $original_path $1; set $before $2; set $unwanted $3; set $after $4; set $custom_request "${request_method} ${original_path}?${before}auth=*****${after} $server_protocol"; }

Tenga en cuenta que las directivas set e if deben colocarse en el bloque del server . Saqué la línea set $args ""; porque borró la variable $args sin ningún motivo y afectó más que los registros.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda