Salve a tutti, è la prima volta che cerco di sfruttare l'.htaccess per visualzizare degli URL scritti meglio. Ho subito incontrato il seguente problema.
Cerco di spiegarmi:
Ho un catalogo di oggetti diviso in categorie. Quindi ho tre pagine php. Una per il catalogo che visualizza le categorie, una per il catalogo che visualizza gli oggetti contenuti all'interno di una categoria e una per la visualizzazione dell'oggetto singolo. Rispettivamente:
- /catalogo.php
- /category.php
- /single.php
Per prima cosa ho passato tramite GET le variabili con i nomi degli oggetti e delle categorie, non solo l'ID del record che non sarebbe stato utile allo scopo.
Quindi avevo dei link così:
- /catalogo.php
- /category.php?category=nome-categoria
- /single.php?category=nome-categoria&name=nome-oggetto
che contengono tutte le parole che mi servono, per raggiungere, alla fine, URL scritti in questo modo:
- /catalogo/style
- /catalogo/style/nome-categoria/
- /catalogo/style/nome-categoria/nome-oggetto
Ho scritto le seguenti regole nell'htaccess:
RewriteEngine On
RewriteBase /
RewriteRule ^catalogo/style/?$ catalogo.php [NC]
RewriteRule ^catalogo/style/?(.*)/?$ category.php?category=$1 [NC]
RewriteRule ^catalogo/style/?(.*)/?(.*)/?$ single.php?category=$1&name=$2 [NC]
Fino alle prime due tutto ok. Il problema che mi danno è che la terza, pur sembrando funzionare da sola, assieme alle prime due perde l'effetto e quando cerco di visualizzare un poggetto singolo viene chiamata la pagina catalogo.php.
C'è da dire che il sito è costituito da due cataloghi e che l'altro, non essendo diviso in sottocategorie ma contenndo solo oggetti sfusi, funziona del tutto solo con queste due regole:
RewriteRule ^catalogo/flux/?$ catalogo-flux.php [NC]
RewriteRule ^catalogo/flux/?(.*)/?$ single-flux.php?name=$1 [NC]
Immagino quindi che queste due funzionino solo perchè non ho la necessità di inserire una terza nidificazione dell'URL; in tal caso mi ritroverei con lo stesso problema di cui sopra. Spero di essermi spiegato e che possiate aiutarmi in qualche modo. Purtroppo è la mia prima esperienza con il regex e non mi sembra molto inutitivo. Accetto anche qualche buona guida
Grazie mille!


Rispondi quotando
