Ciao ragazzi, avrei bisogno di scrivere una regola con mod_rewrite per gestire la paginazione di un file dinamico. Dunque, ho un file .php all'interno del quale c'è una funzione per la paginazione dei risultati estratti da un database. Nel tentativo di riscrivere l'URL tramite mod_rewrite mi sono bloccato davanti a due problemi. Questo è il primo:
- I link alle varie pagine sono fatti così: index.php?pag=1 e inserendo nel file .htaccess questa regola: RewriteRule ^lista/([\d]+)/ index.php?pag=$1 [L] ottengo che il funzionamento corretto si limita solo al primo link, cioè dopo aver cliccato sul link per accedere alla seconda pagina, dove l'URL reale sarebbe index.php?pag=2 appunto, dalla barra indirizzi del browser leggo lista/2/ ed giusto. Quando tento di accedere alla pagine successive, tramite gli altri link, sempre dalla barra indirizzi leggo lista/2/lista/3/ e così via per tutti i link alla varie pagine, mentre la pagina corrente resta sempre la stessa, cioè la numero 2.
Il secondo problema invece riguarda il modo con cui vengono ordinati i risultati tramite un form da cui è possibile scegliere il tipo di ordinamento (titolo, anno, genere...), il modo (crescente o decrescente) e il numero di record visualizzati per pagina.
Per inviare la variabili, sempre alla stessa pagina ovviamente, necessarie a modificare la query per l'ordinamento dei dati, nell'URL reale ho questo: index.php?ord=titolo&by=asc&num=10 e nel file .htaccess avevo provato a scrivere una regola così: RewriteRule ^lista/s/([a-z]+)/([a-z]+)/([\d]+)/ index.php?ord=$1&by=$2&num=$3 [L] . Inutile dirvi che è stato buio totale su tutti i fronti, niente nuovo ordinamento nemmeno a pagarlo...
Quello che vorrei chiedervi è come devo fare per gestire correttamente le variabili in query string, sia quando si tratta di una sola che quando invece diventano molte, risolvendo la situazione descritta? Grazie![]()


Rispondi quotando

