Tengo un sitio que verifica la cadena de agente de usuario y si cambia entre páginas, el usuario se desconecta.
Desafortunadamente, tengo un problema en el que Safari da una cadena ligeramente diferente de una página a la siguiente. Sin embargo, esto parece estar sucediendo solo cuando estoy usando una redirección con htaccess.
90.91.993.92 - - [13/Aug/2021:13:37:41 +0100] "GET /admin/ HTTP/1.1" 200 703 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15" 90.91.993.92 - - [13/Aug/2021:13:37:42 +0100] "GET /controller/ HTTP/1.1" 200 1571 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15" 90.91.993.92 - - [13/Aug/2021:13:37:42 +0100] "GET /controller/js/controller.js HTTP/1.1" 200 1152 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15"La parte que está cambiando es el número de versión, en la primera página es Versión/14.1.2 pero después de la redirección es Versión/14.1.1 aunque notablemente incluso las solicitudes de la segunda página (como el archivo JS) están usando Versión/ 14.1.2!
La regla de reescritura se ve así:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?$ /controller/?&a=$1&b=$2&c=$3&d=$4 [QSA,L]Entonces, ¿dónde está la Versión/14.1.1 y cómo puede estar causando esto htaccess? ¿Existe una forma más segura de comparar las cadenas de agentes de usuario?