- Home
- Categorie
- Coding e Sistemistica
- Coding
- Errore con il mod_rewrite
-
Errore con il mod_rewrite
Salve a tutti, sto impazzendo con il mod_rewrite.
Non riesco a capire perchè scrivendo queste regole nel file .htaccess la prima mi funziona e la seconda no...RewriteEngine on RewriteRule ^prodotti/([^/][0-9]+)-([^/]+).html index.php?m=Default&a=product_info&products_id=$1&%{QUERY_STRING} RewriteRule ^categorie/([^/][0-9]+)-([^/]+).html index.php?m=Default&a=categories&cat_id=$1&%{QUERY_STRING} [L]
Avete qualche idea? Ci sto sbattendo la testa da un paio di giorni...
ciao e grazie
-
Dovrei aver capito il problema: sembra che i valori nella query string non li prenda, questo vuol dire che matcha sempre la prima regola (il file è comunque index.php), anche quando dovrebbe matchare la seconda.
Si può risolvere?
-
Se il link inizia con categoria non può matchare la prima.
Indica come sono i link che secondo te vengono matchati nella prima.
-
@margheritebianche said:
Se il link inizia con categoria non può matchare la prima.
Indica come sono i link che secondo te vengono matchati nella prima.
Il link inizia con categoria, e non se perchè matcha la prima...
Ne sono sicuro perchè controllo gli id delle categorie e dei prodotti.
-
Come faccio a fargli scrivere un file di log degli errori? Almeno con quello vedo cosa c'è che non va...
-
Aggiornamento sul problema:
in realtà la regola viene matchata, ma solo se l'id del prodotto esiste. Mi spiego meglio:l'id del prodotto esiste? viene caricata la categoria con quell'id (
)
l'id del prodotto non è presente? mi da erroreIl problema è che anche se l'id del prodotto non esiste, io starei chiamando la pagina delle categorie, non dei prodotti...
-
Se ci dici come é fatto il link (scrivi proprio l'URL) possiamo dirti che regola segue. Senno' il problema potrebbe essere ovunque!
-
@margheritebianche said:
Se ci dici come é fatto il link (scrivi proprio l'URL) possiamo dirti che regola segue. Senno' il problema potrebbe essere ovunque!
dominiodiprimolivello/index.php?m=Default&a=product_info&products_id=774
dominiodiprimolivello/index.php?m=Default&a=categories&cat_id=1La prima regola che ho scritto nel primo post funziona, la seconda no. Sto leggendo che è un problema di querystring, ma non riesco a trovare documentazione per risolvere.
-
Guarda che se i link che hai sono così il mod_rewrite non agisce per niente.
-
Guarda che se i link che hai sono così il mod_rewrite non agisce per niente.
-
@margheritebianche said:
Guarda che se i link che hai sono così il mod_rewrite non agisce per niente.
Perchè la prima regola funziona?
-
"Credo" di aver capito, dovrebbe essere un problema di espressione regolare. Questa espressione:
[^/][0-9]+
matcha solo i numeri dal 10 in su, mentre a me servirebbero anche i primi 9 (infatti se scelgo una categoria con id > 9 il rewrite funziona).
Qualche suggerimento per l'espressione regolare? Ne ho trovate ma non funzionano.
-
ho un problema:
utilizzo queste 2 righe nel mio htaccess
RewriteRule ^([^/]+).(p)?htm(l)?$ index.php?id=itinerari&scat=$1 RewriteRule ^([^/]+).(p)?htm(l)?$ index.php?id=conv&cat_conv=$1
quando testo, sembra che funzioni solo la prima regola.
Se invece commento la prima mi funziona anche la seconda.Sapete come faccio ad evitare il conflitto?
grazie 1000 e buon lavoro a tutti
-
La prima parte é uguale quindi le due regole sono uguali, quindi la prima é quella utilizzata.
Se commenti la prima, viene utilizzata la seconda.Avere + regole ha senso solo e soltanto se la prima non viene matchata e la seconda é diversa dalla prima.
-
Grazie 1000 margheritebianche, quel problema sono riuscito a risolverlo.
Adesso mi serve capire un'altra cosa,
esempio:
se trasformo
www.miosito.com/index.php?var=1&var2=2succede che sulle pagine si perdono i collegamenti alle immagini ed al css.
qualcuno sa spiegarmi come recuperare questa situtazione?
Grazie 1000