regola di riscrittura URL 2 per 1 pagina dinamica
-
27-10-2019 - |
Domanda
Ho una pagina dinamica chiamata show.php. La pagina è dinamica e l'URL può essere sia show.php?name=john-doe
o show.php?category=student
.
Sto cercando di creare una regola di riscrittura che trasforma l'URL nella /show/john-doe.html
per i nomi o /show/student.html
per la categoria.
Questo è quello che ho nel mio .htaccess finora.
RewriteRule ^show/([^/]*)\.html$ show.php?name=$1 [L]
RewriteRule ^show/([^/]*)\.html$ show.php?category=$1 [L]
Al momento, solo il nome regola funziona ma la regola categoria non lo fa. Che cosa c'è che non va?
Soluzione
Il problema è che si sta inviando tutto show / xxx.html allo stesso URL (il primo). Dal momento che entrambe le regole di riscrittura stanno utilizzando esattamente lo stesso parametro solo il primo funzionerà.
Si potrebbe risolvere in due modi diversi.
In entrambi si utilizza show.php? Id = xxx e accettare sia il nome e la categoria in PHP e detirmine ci quale pagina da mostrare.
In alternativa si utilizzano due diversi tipi di URL nel vostro riscrittura per ottenere mostra / categoria / student.html e mostra / studenti / John-doe.html in questo modo:
RewriteRule ^show/student/([^/]*)\.html$ show.php?name=$1 [L]
RewriteRule ^show/category/([^/]*)\.html$ show.php?category=$1 [L]