Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Seo e Tecnologie > Mod Rewrite e Tecniche di URL Redirect
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti

Mod Rewrite e Tecniche di URL Redirect La riscrittura delle URL e i reindirizzamenti

Hey Amico Visitatore,
Condividi con noi le tue idee e la tua conoscenza Aprendo una nuova discussione nella sezione Mod Rewrite e Tecniche di URL Redirect


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 17-09-10, 21:29   #1 (permalink)
User Newbie
 
Data di registrazione: Apr 2008
Messaggi: 6
Cool 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
TuxSoul non in linea   Rispondi citando
Vecchio 22-09-10, 15:20   #2 (permalink)
Moderatore
 
L'avatar di ayrton2001
 
Data di registrazione: Jul 2006
Ubicazione: Bagheria
Messaggi: 1,145
Invia un messaggio tramite MSN a ayrton2001 Invia un messaggio tramite Skype a 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?
ayrton2001 non in linea   Rispondi citando
Vecchio 11-10-10, 18:43   #3 (permalink)
User Newbie
 
Data di 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!!
jo17 non in linea   Rispondi citando
Vecchio 12-10-10, 11:01   #4 (permalink)
Moderatore
 
L'avatar di ayrton2001
 
Data di registrazione: Jul 2006
Ubicazione: Bagheria
Messaggi: 1,145
Invia un messaggio tramite MSN a ayrton2001 Invia un messaggio tramite Skype a ayrton2001
Quote:
jo17 Visualizza il 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.
ayrton2001 non in linea   Rispondi citando
Vecchio 12-10-10, 13:32   #5 (permalink)
User Newbie
 
Data di 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!!
jo17 non in linea   Rispondi citando
Vecchio 12-10-10, 16:27   #6 (permalink)
Moderatore
 
L'avatar di ayrton2001
 
Data di registrazione: Jul 2006
Ubicazione: Bagheria
Messaggi: 1,145
Invia un messaggio tramite MSN a ayrton2001 Invia un messaggio tramite Skype a 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
ayrton2001 non in linea   Rispondi citando
Vecchio 12-10-10, 17:20   #7 (permalink)
User Newbie
 
Data di registrazione: Aug 2007
Messaggi: 7
Uhmm... anche con queste modifiche mi da sempre errore 404 di pagina non trovata. Eppure dovrebbe essere così lineare!!
jo17 non in linea   Rispondi citando
Vecchio 13-10-10, 02:36   #8 (permalink)
Moderatore
 
L'avatar di ayrton2001
 
Data di registrazione: Jul 2006
Ubicazione: Bagheria
Messaggi: 1,145
Invia un messaggio tramite MSN a ayrton2001 Invia un messaggio tramite Skype a 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
ayrton2001 non in linea   Rispondi citando
Vecchio 13-10-10, 20:11   #9 (permalink)
User Newbie
 
Data di registrazione: Aug 2007
Messaggi: 7
Allora ho fatto un piccolo passo avanti... ho modificato htaccess in questo modo:
Quote:
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....
jo17 non in linea   Rispondi citando
Vecchio 13-10-10, 20:29   #10 (permalink)
Moderatore
 
L'avatar di ayrton2001
 
Data di registrazione: Jul 2006
Ubicazione: Bagheria
Messaggi: 1,145
Invia un messaggio tramite MSN a ayrton2001 Invia un messaggio tramite Skype a ayrton2001
Non ho capito bene. Puoi farmi un esempio?
ayrton2001 non in linea   Rispondi citando
Vecchio 14-10-10, 11:41   #11 (permalink)
User Newbie
 
Data di 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!
jo17 non in linea   Rispondi citando
Vecchio 14-10-10, 20:40   #12 (permalink)
Moderatore
 
L'avatar di ayrton2001
 
Data di registrazione: Jul 2006
Ubicazione: Bagheria
Messaggi: 1,145
Invia un messaggio tramite MSN a ayrton2001 Invia un messaggio tramite Skype a 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.
ayrton2001 non in linea   Rispondi citando
Vecchio 15-10-10, 10:53   #13 (permalink)
User Newbie
 
Data di 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!!!!
jo17 non in linea   Rispondi citando
Vecchio 17-10-10, 02:33   #14 (permalink)
Moderatore
 
L'avatar di ayrton2001
 
Data di registrazione: Jul 2006
Ubicazione: Bagheria
Messaggi: 1,145
Invia un messaggio tramite MSN a ayrton2001 Invia un messaggio tramite Skype a ayrton2001
Quote:
jo17 Visualizza il 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.
ayrton2001 non in linea   Rispondi citando
Rispondi
Tags: , , , , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 18:46.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.