Para el bloque del servidor de nuestro sitio en nginx, tengo estas directivas de ubicación:
location ~* ^.+\.(ico|css|js|eot|woff|otf|svg|gif|jpe?g|png|swg|woff2)(\?[a-z0-9=_]+)?$
location /applications/
location /
location ~ \.php$
Tengo una URL específica de nuestro antiguo software de foro que quiero redirigir. La URL se ve así:
https://www.example.com/forums/forumdisplay.php?f=105
Hasta ahora, nada de lo que he probado parece coincidir con esta URL. Probé algunas declaraciones de reescritura diferentes en la ubicación / y también probé una coincidencia exacta pensando que la coincidencia más larga debería ganar:
location = /forums/forumdisplay.php?f=105 {
return 301 https://newurl;
}
Esto no funciona; sigo recibiendo un 404 de esta URL. ¿Dónde/cómo debo hacer esta redirección?
Respuesta1
Un enfoque es utilizar:
location = /forums/forumdisplay.php {
if ($arg_f = 105) {
return 301 https://newurl;
}
fastcgi_pass /path/to/php.sock; # Send the request to PHP processor
}
Este enfoque coincidirá con la /forums/forumdisplay.php
URL donde el f
argumento de consulta está establecido en 105 y puede haber argumentos de consulta adicionales.
El ejemplo del comentario requiere una coincidencia exacta con la URL completa y no funciona si la URL es
http://example.com/forums/forumdisplay.php?f=105&fbclid=4567