• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

337
Views
Cómo capturar y registrar cualquier redireccionamiento 301 (.htaccess) que ocurra usando PHP

Tengo un montón de redireccionamientos 301 configurados en mi archivo .htaccess. Lo que me gustaría hacer es realizar un seguimiento de cuántas veces se usa una redirección, para poder administrarlos mejor.

¿Hay alguna manera de capturar y registrar coincidencias de redireccionamientos 301 que ocurren con PHP?

En otras palabras, si la redirección es:

 RewriteRule ^about/bozo$ /about [R=301,L]

¿Hay alguna manera de capturar el "acerca de/bozo" cada vez que sucede usando PHP? (aunque los redireccionamientos son manejados por llamadas htaccess, y no por redireccionamientos de encabezado PHP)

about 3 years ago · Santiago Trujillo
2 answers
Answer question

0

No puede registrar una redirección 3xx que se activa anteriormente en la solicitud de Apache (por ejemplo, en .htaccess ) usando PHP. La redirección es completamente invisible para PHP.

No puede usar el Referer HTTP para determinar si se produjo una redirección ya que el navegador conserva el Referer de la solicitud inicial (si corresponde).

Las solicitudes que activan una redirección 3xx deben registrarse en el registro de acceso del servidor.

La única forma en que puede hacer esto con PHP es si marca la URL redirigida de alguna manera (quizás con una cadena de consulta) y verifica esto en su script PHP. Por ejemplo:

 RewriteRule ^about/bozo$ /about?redirected=true [R=301,L]

... pero eso tal vez no sea deseable.

about 3 years ago · Santiago Trujillo Report

0

La respuesta de MrWhite es correcta: no puede ver esos redireccionamientos en PHP. Sin embargo, no necesita usar PHP para obtener las estadísticas que desea.

Si desea estadísticas sobre la frecuencia con la que ocurren esos redireccionamientos, puede obtenerlas del archivo access_log de su servidor web. Cada redirección 301 debe agregar una entrada en el archivo de registro, independientemente de si la redirección fue activada por .htaccess o PHP. Tal entrada de registro debería verse así:

 127.0.0.1 - - [01/Jan/2000:11:55:36 -0700] "GET /about/bozo HTTP/1.1" 301 456

Puede utilizar las herramientas de línea de comandos para contar los redireccionamientos:

 grep '" 301 ' /var/log/apache2/access_log | wc -l

o

 grep 'GET /about/bozo ' /var/log/apache2/access_log | wc -l

Donde grep filtra el archivo de registro y wc -l cuenta las líneas.

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error