
Este é o URL que preciso para remover o último segmento(?order=asc)
https://www.example.com/segment_1/segment_2/page/the_number_goes_here/?order?asc
Este é o código que estou tentando:
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;
}
Responder1
As diretivas location
e rewrite
processam oURI normalizadoque não inclui a string de consulta (que você chamou de "o último segmento").
A string de consulta está disponível na $args
variável.
Orewrite
diretivaopcionalmente, você pode remover a string de consulta original anexando a ?
ao final do valor de substituição.
Por exemplo:
rewrite ^ /$segment_1/$segment_2/page/$page_number/? permanent;
Além disso, no seu código de exemplo:
- O número da página é capturado
$3
e não$4
- A
try_files
declaração é provavelmente redundante, pois o Nginx sempre avaliará as diretivasset
erewrite
primeiro.
é avaliado primeiro