- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- URL Rewriting
-
URL Rewriting
Ciao a tutti.
Ecco la mia domandona:
ho un sito con diversi hotel inseriti in un database. La ricerca avviene
tramite un file search.php?citta=milano.
Ho inserito (anche grazie al vostro aiuto) il rewriting per trasfermare le pagine del mio sito da www.miosito.it/search.php?citta=milano adesso ho
www.miosito.it/hotel-milano.html
La mia domanda è:
Quando effettuo una ricerca all'interno del box, mi compare la pagina
www.miosito.it/search.php?citta=milano. Però se accedo a www.miosito.it/hotel-milano.html, mi restituisce gli stessi record.
Quindi come posso fare che quando un utente effettua una ricerca
venga trasformata direttamente l'url in www.miosito.it/hotel-milano.html ????Grazie a tutti quelli che mi vorranno aiutare.
Un saluto
Andrea
-
Ciao stable,
dovresti modificare il file search.php, facendogli fare un redirect, se non vado errato
-
@stable said:
Ciao a tutti.
Ecco la mia domandona:
ho un sito con diversi hotel inseriti in un database. La ricerca avviene
tramite un file search.php?citta=milano.
Ho inserito (anche grazie al vostro aiuto) il rewriting per trasfermare le pagine del mio sito da www.miosito.it/search.php?citta=milano adesso ho
www.miosito.it/hotel-milano.html
La mia domanda è:
Quando effettuo una ricerca all'interno del box, mi compare la pagina
www.miosito.it/search.php?citta=milano. Però se accedo a www.miosito.it/hotel-milano.html, mi restituisce gli stessi record.
Quindi come posso fare che quando un utente effettua una ricerca
venga trasformata direttamente l'url in www.miosito.it/hotel-milano.html ????Grazie a tutti quelli che mi vorranno aiutare.
Un saluto
AndreaHai due soluzioni. Il form non è più un classico form ma lo trasformi in javascript e fai il redirezionamento all'url, tipo sul bottone metti
onclick="location.href='/hotel-' + citta.value + '.html';"
oppure lato server potresti modificare il codice di search.php mettendo tipo
<? Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: http://www.miosito.it/hotel" . $_GET['citta']; .html" ); ?>
Entrambi hanno vantaggi e svantaggi: il primo non funziona se javascript è disabilitato, il secondo deve fare una doppia chiamata al webserver ad ogni ricerca. Personalmente sceglierei la seconda.
-
Così:
[PHP]
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.miosito.it/hotel-" . $_GET['citta']; .html" " );
[/PHP]mi da un errore Parse error: parse error, unexpected ';'
Come mai?
-
forse il ; dopo $_GET['citta']
edit:
forse ho detto una semi cacchiata
prova
Header( "Location: http://www.miosito.it/hotel-" . $_GET['citta'] . ".html" );
-
@stable said:
Così:
[php]
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.miosito.it/hotel-" . $_GET['citta']; .html" " );
[/php]mi da un errore Parse error: parse error, unexpected ';'
Come mai?
scusa, è vero c'è un errore, prova così:
Header( "Location: http://www.miosito.it/hotel-" . $_GET['citta'] . ".html" );
però questo redirect non deve farlo sempre, ma solo se proviene dall'url normale e non rewritata.
-
Ciao a tutti,
sto entrando in questi gg nel vostro mondo, sono ancora molto inesperto e sto iniziando a capirci qualcosa proprio ora.
La domanda che mi sono fatto, dopo aver letto anche l'articolo, è perchè viene messowww.miodominio.it/hotel-milano
invece che
www.miodominio.it/hotel_milano
C'e' differenza?
E' meglio il "-" o "_"?Grazie per le vostre risposte.
Luca
-
@lucabaldazzi said:
Ciao a tutti,
sto entrando in questi gg nel vostro mondo, sono ancora molto inesperto e sto iniziando a capirci qualcosa proprio ora.
La domanda che mi sono fatto, dopo aver letto anche l'articolo, è perchè viene messowww.miodominio.it/hotel-milano
invece che
www.miodominio.it/hotel_milano
C'e' differenza?
E' meglio il "-" o "_"?Grazie per le vostre risposte.
Luca
Ciao lucabaldazzi,
il trattino "-" viene visto dai motori più o meno come se fosse uno spazio, mentre l'underscore _ attacca due termini tra di loro.Puoi fare una prova da solo cercando su google la parola hotel-milano e hotel_milano, nel secondo caso interpreterà l'underscore come parte integrante della ricerca e ti restituirà molti meno risultati.
Personalmente consiglio di usare il "-" anzichè il "_" e se mastichi bene l'inglese anche Matt Cutts tratta la questione della scelta tra trattino o underscore sotto questi termini.
-
ragazzi con entrambi i codici mi da quest'errore:
Questa pagina non ridireziona in modo corretto
Firefox ha rilevato che il server sta ridirezionando la richiesta per questo indirizzo in modo che non possa mai essere completata.
Questo problema spesso è causato dal blocco o dal rifiuto dei cookie.
Uff....
-
@stable said:
ragazzi con entrambi i codici mi da quest'errore:
Questa pagina non ridireziona in modo corretto
Firefox ha rilevato che il server sta ridirezionando la richiesta per questo indirizzo in modo che non possa mai essere completata.
Questo problema spesso è causato dal blocco o dal rifiuto dei cookie.
Uff....beh se l'hai messo così nudo e crudo va in loop, devi impostare un "if" in modo che la redirezione avvenga solo quando proviene dal form di ricerca (potresti per esempio aggiungere nel form un altro parametro hidden)
-
ma qual'è la ragione del cambio di url della ricerca via form? Google non segue comunque i form (giusto?) E' solo per mostrare una url più bella agli utenti?
Certo i vantaggi ci sono: evitare link spontanei ala url con i parametri; evitare effetti collaterali dovuti alle toolbar che seguono.
Ma in realtà tali vantaggi giustificano lo sbattimento e i rischi di agire sul form per modificare l'url di uscita?:?
-
@centix said:
ma qual'è la ragione del cambio di url della ricerca via form? Google non segue comunque i form (giusto?) E' solo per mostrare una url più bella agli utenti?
Certo i vantaggi ci sono: evitare link spontanei ala url con i parametri; evitare effetti collaterali dovuti alle toolbar che seguono.
Ma in realtà tali vantaggi giustificano lo sbattimento e i rischi di agire sul form per modificare l'url di uscita?:?
Google non segue i form, e non è solo una questione di bellezza. I motori è vero che leggono i parametri, ma è chiaramente risaputo che amano e digeriscono url quanto più semplici possibili. Quindi meno parametri ci sono meglio è, da qui nasce la scelta del rewrite.
-
eLLeGi che tipo di controllo potrei mettergli perchè non ho capito bene...
Thank U
-
@stable said:
eLLeGi che tipo di controllo potrei mettergli perchè non ho capito bene...
Thank UNel form aggiungi ad esempio
<input type="hidden" name="dalform" value="1">
e invece nella pagina metti
if ($_GET['dalform']="1") { //Qui dentro ci metti il codice per fare il rewrite che ti ho dato prima }
per cui solo quando la richiesta proviene dal form lui effettua il redirect convertendo l'url "lunga" in url rewritata.
Se invece chiami l'url rewritata direttamente resterà immutata.
Fammi sapere.
Ciao,
Giuseppe
-
Lo provo e ti faccio sapere
-
Niente, mi da sempre lo stesso problem
-
@eLLeGi said:
Google non segue i form, e non è solo una questione di bellezza. I motori è vero che leggono i parametri, ma è chiaramente risaputo che amano e digeriscono url quanto più semplici possibili. Quindi meno parametri ci sono meglio è, da qui nasce la scelta del rewrite.
Ma google quella url con i parametri non la vedrà mai proprio perchè generata da un form. Stable ha già sistemato con l'url rewrite i propri link che adesso non hanno più parametri. Il suo problema è con i link generati dai form che i motori, a quanto so, non seguono quindi non c'è una reale necessità di mettere mano alle url dei form.
Cmq basta che usi il metodo POST anzichè GET e allora di parametri in url proprio niente
Metti il metodo POST nel form e come action mandi ad una pagina che effettua la ricerca e fai il redirect normale alla pagine con il link come vuoi tu
Ad esempio il form ha come action search-redirect.php, questa pagina non fa niente altro che prendere il paramentro *citta * inviato dal form in get or post e fa un normale redirect php al link (hotel-milano.php) come lo vuoi te senza parametri.
-
@centix said:
Ma google quella url con i parametri non la vedrà mai proprio perchè generata da un form. Stable ha già sistemato con l'url rewrite i propri link che adesso non hanno più parametri. Il suo problema è con i link generati dai form che i motori, a quanto so, non seguono quindi non c'è una reale necessità di mettere mano alle url dei form.
Cmq basta che usi il metodo POST anzichè GET e allora di parametri in url proprio niente
Metti il metodo POST nel form e come action mandi ad una pagina che effettua la ricerca e fai il redirect normale alla pagine con il link come vuoi tu
Ad esempio il form ha come action search-redirect.php, questa pagina non fa niente altro che prendere il paramentro *citta *inviato dal form in get or post e fa un normale redirect php al link (hotel-milano.php) come lo vuoi te senza parametri.
Ma il redirect del vecchio url si deve fare non perchè google segua il form, ma per correttezza di forma: metti che un utente voglia mettere in bookmark l'url si troverà il vecchio indirizzo, peggio ancora se quell'url viene reso pubblico tramite qualche referer o tramite link, prima o poi google potrebbe indicizzarlo e creare un duplicato di pagina.
-
ops, postato due volte per errore:
Vabbè approfitto per dire a stable che se ha bisogno di aiuto, possiamo spostarci nel forum del php o in privato, ora non è più un problema di posizionamento.
-
Ma perchè non inserisci un controllo sull'url?
Se l'URL contiene search.php?citta= allora fai il redirect