+ Rispondi alla Discussione
Risultati da 1 a 14 di 14

Problema colla riscrittura degli URL (mod_rewrite)

Ultimo Messaggio di ayrton2001 il:
  1. #1
    User Newbie
    Data Registrazione
    Apr 2008
    Messaggi
    6

    Problema colla riscrittura degli URL (mod_rewrite)

    Salve a tutti!

    Sto scrivendo un sito che fa grande uso della riscrittura degli url.

    In pratica nel mio .htaccess ho roba del tipo:
    RewriteRule ^[A-Za-z0-9_-]{3,24}/album/[0-9]{4,8}/[0-9]{1,3}$ album.inc.php?utente=$1&id=$2&p=$3 [L]

    Che mi regge URL del tipo
    /utente/album/14745/7
    album.inc.php?utente=utente&id=14745&p=7

    E questo funziona.
    Però, all'inzio dello stesso file .htaccess ho qualcosa di molto più semplice:

    RewriteRule ^registrati$ registrati.inc.php [L]

    Ora, visitando l'indirizzo
    /registrati, quel che ottengo è un bel 404
    "The requested URL /registrati was not found on this server."

    Quindi come se cercasse il file /registrati che, appunto, non esiste.
    Mi ignora quella riga? O è strutturata male? Vi prego la cosa mi fa impazzire.

    Ah, e la stessa riga del tipo:
    RewriteRule ^login$ login.inc.php [L]
    Invece funziona. Cioè mi da il 404, ma non trova "login.inc.php", quindi il mod_rewrite funziona.

    Grazie in anticipo per le eventuali risposte

  2. #2
    User L'avatar di ayrton2001
    Data Registrazione
    Jul 2006
    Località
    Bagheria
    Messaggi
    1,174
    Segui ayrton2001 su Twitter Aggiungi ayrton2001 su Google+ Aggiungi ayrton2001 su Facebook Aggiungi ayrton2001 su Linkedin Visita il canale Youtube di ayrton2001
    Ciao TuxSoul,
    occorrerebbe sapere se vi sono altre regole oltre le tre da te riportate.
    la regola del "registrati" è immediatamente successiva o precedente alla regola login?
    Leggimi su Andrea Cardinale | Seguimi su Twitter e Google+

  3. #3
    User Newbie
    Data Registrazione
    Aug 2007
    Messaggi
    7
    Salve a tutti, io ho più o meno lo stesso problema, la prima regola chiamata funziona, la successiva (che è identica) no!!

    il mio .htaccess è il seguente

    RewriteEngine on

    RewriteRule ^([0-9]+)-([^/]+)\.html$ lista_categorie.php?cta_codice_categoria=$1
    RewriteRule ^([0-9]+)-([^/]+)\.html$ sottocategorie.php?pippo=$1

    in verità la variabile "pippo" sarebbe sempre "cta_codice_categoria",

    Il mio dubbio è se non funziona perchè la seconda pagina chiamata "sottocategorie.php" avviene all'interno di lista_categorie.php

    Spero di essere stata abbastanza chiara è da due settimane che cerco di documentarmi sul rewriterule....

    Grazie in anticipo!!

  4. #4
    User L'avatar di ayrton2001
    Data Registrazione
    Jul 2006
    Località
    Bagheria
    Messaggi
    1,174
    Segui ayrton2001 su Twitter Aggiungi ayrton2001 su Google+ Aggiungi ayrton2001 su Facebook Aggiungi ayrton2001 su Linkedin Visita il canale Youtube di ayrton2001
    Citazione Originariamente Scritto da jo17 Visualizza Messaggio
    Salve a tutti, io ho più o meno lo stesso problema, la prima regola chiamata funziona, la successiva (che è identica) no!!

    il mio .htaccess è il seguente

    RewriteEngine on

    RewriteRule ^([0-9]+)-([^/]+)\.html$ lista_categorie.php?cta_codice_categoria=$1
    RewriteRule ^([0-9]+)-([^/]+)\.html$ sottocategorie.php?pippo=$1
    E' la stessa regola e dunque non può riscrivere in due modi diversi.
    Leggimi su Andrea Cardinale | Seguimi su Twitter e Google+

  5. #5
    User Newbie
    Data Registrazione
    Aug 2007
    Messaggi
    7
    Si avevo avuto il sospetto.. però fondamentalmente deve fare la stessa cosa solo che chiama due pagine diverse... come si dovrebbe gestire dunque? Io ho anche provato togliendo la parte ([0-9]+) e passandogli solo una variabile...e suppongo che valga poco questa modifica perchè continuoa a darmi pagina non trovata..

    Ti ringrazio tantissimo per la risposta!!

  6. #6
    User L'avatar di ayrton2001
    Data Registrazione
    Jul 2006
    Località
    Bagheria
    Messaggi
    1,174
    Segui ayrton2001 su Twitter Aggiungi ayrton2001 su Google+ Aggiungi ayrton2001 su Facebook Aggiungi ayrton2001 su Linkedin Visita il canale Youtube di ayrton2001
    Metti un qualcosa nella regola che le distingue. Per esempio:

    Codice:
    RewriteEngine on
    
    RewriteRule ^([0-9]+)-codcat([^/]+)\.html$ lista_categorie.php?cta_codice_categoria=$1
    RewriteRule ^([0-9]+)-sottocat([^/]+)\.html$ sottocategorie.php?pippo=$1
    Leggimi su Andrea Cardinale | Seguimi su Twitter e Google+

  7. #7
    User Newbie
    Data Registrazione
    Aug 2007
    Messaggi
    7
    Uhmm... anche con queste modifiche mi da sempre errore 404 di pagina non trovata. Eppure dovrebbe essere così lineare!!

  8. #8
    User L'avatar di ayrton2001
    Data Registrazione
    Jul 2006
    Località
    Bagheria
    Messaggi
    1,174
    Segui ayrton2001 su Twitter Aggiungi ayrton2001 su Google+ Aggiungi ayrton2001 su Facebook Aggiungi ayrton2001 su Linkedin Visita il canale Youtube di ayrton2001
    Errore 404 vuol dire due cose:

    • Fa il redirect ma la pagina php non esiste
    • La pagina html è diversa da quella definita nelle regole
    Leggimi su Andrea Cardinale | Seguimi su Twitter e Google+

  9. #9
    User Newbie
    Data Registrazione
    Aug 2007
    Messaggi
    7
    Allora ho fatto un piccolo passo avanti... ho modificato htaccess in questo modo:
    RewriteEngine on
    RewriteRule ^([0-9]+)-codcat([^/]+)\.html$ lista_categorie.php?cta_codice_categoria=$1
    RewriteRule ([0-9]+)-B.html$ sottocategorie.php?pippo=$1
    in pratica ho tolto il simbolo ^ quando richiamo sottocategorie.php
    Ora è giunto un altro problema... viene passata sempre la prima variabile selezionata.
    Mi spiego meglio se alla prima chiamata di lista_categorie.php viene passata la variabile 01 anche quando richiamo sottocategorie.php passa sempre 01! Anche se sul link viene scritta la variabile giusta es miosito/SH01.html....

  10. #10
    User L'avatar di ayrton2001
    Data Registrazione
    Jul 2006
    Località
    Bagheria
    Messaggi
    1,174
    Segui ayrton2001 su Twitter Aggiungi ayrton2001 su Google+ Aggiungi ayrton2001 su Facebook Aggiungi ayrton2001 su Linkedin Visita il canale Youtube di ayrton2001
    Non ho capito bene. Puoi farmi un esempio?
    Leggimi su Andrea Cardinale | Seguimi su Twitter e Google+

  11. #11
    User Newbie
    Data Registrazione
    Aug 2007
    Messaggi
    7
    Ciao e grazie per la pasienza!

    Il tutto è strutturato in questo modo:
    dalla home page vado, tramite un menù generale, alle varie liste categorie, e qui faccio il primo revriterule, quindi ho il mio indirizzo convertito nel seguente modo:
    miosito/01-codcatIncubatrici.html
    dove 01 è il codice della categoria e incubatrici la descrizione

    All'interno di questa pagina c'è un elenco di sotto categorie e anche qui voglio la conversione dell'indirizzo, che fa correttamente in questo modo: miosito/H01-B.html dove H01 è il codice della sottocategoria da chiamare.
    Se faccio un echo della query presente in questa pagina mi accorgo che passa sempre e comunque la variabile 01!

    Naturalmente la variabile passata per la query in get è pippo...

    Da premettere che sono sul mio server in locale..
    Ti ringrazio ancora!

  12. #12
    User L'avatar di ayrton2001
    Data Registrazione
    Jul 2006
    Località
    Bagheria
    Messaggi
    1,174
    Segui ayrton2001 su Twitter Aggiungi ayrton2001 su Google+ Aggiungi ayrton2001 su Facebook Aggiungi ayrton2001 su Linkedin Visita il canale Youtube di ayrton2001
    Credo di aver capito. Prova così:

    Codice:
    RewriteEngine on
    RewriteRule ^([0-9]+)-codcat([^/]+)\.html$ lista_categorie.php?cta_codice_categoria=$1 
    RewriteRule ^(.*)-B.html$ sottocategorie.php?pippo=$1
    [0-9] vuol dire solo numeri.
    Leggimi su Andrea Cardinale | Seguimi su Twitter e Google+

  13. #13
    User Newbie
    Data Registrazione
    Aug 2007
    Messaggi
    7
    SIII!!! HAI RAGIONE!!!
    Giustamente gli dicevo di passare solo i numeri ed essendo una sottocategoria di 01, non capico che mi escludeva il carattere alfabetico!!!!
    Ti ringrazio tantissimo per l'aiuto e per la pasienza!!!!

  14. #14
    User L'avatar di ayrton2001
    Data Registrazione
    Jul 2006
    Località
    Bagheria
    Messaggi
    1,174
    Segui ayrton2001 su Twitter Aggiungi ayrton2001 su Google+ Aggiungi ayrton2001 su Facebook Aggiungi ayrton2001 su Linkedin Visita il canale Youtube di ayrton2001
    Citazione Originariamente Scritto da jo17 Visualizza Messaggio
    SIII!!! HAI RAGIONE!!!
    Giustamente gli dicevo di passare solo i numeri ed essendo una sottocategoria di 01, non capico che mi escludeva il carattere alfabetico!!!!
    Ti ringrazio tantissimo per l'aiuto e per la pasienza!!!!
    Figurati. A volte chi non risponde o non risponde in modo tale da risolvere il problema dipende solo dal fatto di non capire la reale esigenza o il problema.
    Leggimi su Andrea Cardinale | Seguimi su Twitter e Google+

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.