Tengo un sitio web que se creó originalmente con ASP clásico. Hace aproximadamente un año se reescribió en PHP. Esto hizo que las extensiones de archivo cambiaran y algunas páginas se movieron a nuevas ubicaciones dentro del sitio web. Naturalmente, realizamos redireccionamientos 301 de las URL antiguas a las nuevas URL para que sus usuarios y motores de búsqueda pudieran encontrar sus nuevas ubicaciones. Esto funciona bien
También creamos una herramienta que permite al propietario del sitio crear sus propias URL pequeñas que redirigirán a una página con las variables de seguimiento de campañas de Google Analytics incluidas en la URL para que puedan realizar un seguimiento de la campaña y ver cómo funciona.
El problema que tengo es que las reglas de seguimiento de campañas entran en conflicto con las redirecciones 301 y evitan que las redirecciones funcionen.
Aquí está el código de seguimiento de la campaña:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /tracking.php?$1 [R=301,L]
Como puede ver, verifica si existe un archivo y, si no es así, redirige a un script de seguimiento (tracking.php) que luego toma el código de seguimiento y lo redirige a la URL correcta con el código de campaña de Google Analytics en la consulta cuerda.
Ese código hace que las reglas como esta fallen:
redirect 301 /about.asp /about.php
redirect 301 /capabilities.asp /capabilities.php
redirect 301 /capacitors.asp /capacitors.php
Tiene sentido que esto no funcione en conjunto, como dicen las reglas de seguimiento, "si no se encuentra un archivo, redirija a tracking.php". Lo que necesito es que los redireccionamientos 301 se ejecuten primero, y si ninguno de ellos coincide, redirige al script de seguimiento. Colocar las reglas de seguimiento debajo de las redirecciones 301 no cambia los resultados.
¿Se puede hacer esto a través de .htaccess? ¿O tendré que modificar la secuencia de comandos de seguimiento para que, si no se encuentra una campaña, verifique si el ID de la campaña es realmente una página antigua que necesita ser redirigida y luego redirige el 301 desde allí?