
Esta es la URL que necesito para eliminar el último segmento.(?order=asc)
https://www.example.com/segment_1/segment_2/page/the_number_goes_here/?order?asc
Este es el código que estoy probando:
location ~ ^/([^/]+)/([^/]+)/page/(\d+)/ {
try_files $uri $uri/ /index.php?$args;
# Capture the 2 segments and page number
set $segment_1 $1;
set $segment_2 $2;
set $page_number $4;
# Redirect without the sufix
rewrite ^ /$segment_1/$segment_2/page/$page_number/ permanent;
}
Respuesta1
Las directivas location
y rewrite
procesan elURI normalizadaque no incluye la cadena de consulta (que has llamado "el último segmento").
La cadena de consulta está disponible en la $args
variable.
Elrewrite
directivaOpcionalmente, puede eliminar la cadena de consulta original agregando a ?
al final del valor de reemplazo.
Por ejemplo:
rewrite ^ /$segment_1/$segment_2/page/$page_number/? permanent;
Además, en su código de ejemplo:
- El número de página se captura
$3
y no$4
- La
try_files
declaración probablemente sea redundante ya que Nginx siempre evaluará primero las directivasset
y .rewrite
se evalúa primero