Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [Pillola]Riscrivere gli url tramite il rewrite del server

    Mi permetto di scrivere questa pillola in quanto mi sembra un argomento molto di interesse per tante persone e comunque adatto alla sezione.

    Nella sezione php del forum avevo già trattato l'argomento in maniera tecnica (qui la pillola) mentre ora vorrei provare a fare qualche considerazione su quando riscrivere o meno l'url dei siti

    Allora inizio con il considerare siti già indicizzati
    In questo caso è totalmente controproducente eseguire il rewrite dell'url in quanto se ad esempio avessimo la pagina :

    1) www.sitoweb.it/notizia.php?id=116

    sarebbe inutile trasformarla in una di questo tipo :

    2) www.sitoweb.it/notizia/116.html

    In quanto la pagina reale (cioè quella che esiste sul server) sarebbe la numero 1 (quella che è gia stata indicizzata) e la quale continuerebbe ad esistere anche se riscriviamo le nostre pagine . Il risultato di questa operazione sarebbe soltanto raddoppiare il numero di pagine presenti nella cache del motore ma duplicheremmo soltatno tutte quelle gia presenti (e questo ve lo posso garantire per una mia esperienza personale: ho riscritto gli url di un sito che avevo con 50 mila pagine in google con pagine del tipo 1 e dopo pochi giorni sono si passato a quasi 100 mila ma dopo 2 mesi non c'e ne era più una posizionata per la key presente nel titolo)

    Mentre passiamo a vedere quando conviene creare pagine "riscritte"

    Conviene crearle quando un sito è nuovo. Quando partiamo da 0 . Proviamo a progettarlo già con l'idea della finta staticità.
    Se partiamo da quanto scritto in Google (http://www.google.it/intl/it/webmasters/guidelines.html) ed esattamente a questo paragrafo
    Non utilizzare "&id=" come parametro per i vostri URL, in quanto queste pagine non vengono indicizzate da Google
    gia dovremmo capire che i link di tipo 1 sarebbe da evitare (ma questa retorica è stata detta più e più volte ....)
    Allora usiamo il rewrite per i siti nuovi . Ok ma come ?

    Usiamo sempre quando passiamo informazioni con un method GET nei form
    Potremmo anche usarlo con un method POST ma sarebbe inutile riscrivere ad esempio una pagina ricerca.php (dove non ci sono le query string) in una ricerca.html
    Allora vediamo come potrebbe essere meglio tale riscrittura.

    Qui abbiamo 2 possibilita :
    1 Passiamo il valore delle variabili tramite l'id del nostro database
    esempio : www.sito.it/notizia.php?id=116
    2 Passiamo il valroe delle variabili tramite il nome dell'articolo (o notizia, o titolo ..... il mio è un esempio)
    http://www.sito.it/notizia.php?artic...-dei-salumieri

    Se passiamo il valore come nell'esempio 1 ci conviene anche dare altre informazioni nell'url : (supponiamo che l'articolo 116 abbia come titolo la guerra nel mondo dei salumieri)
    potremmo trasformare il nostro url in :
    http://www.sito.it/notizia/116/la-gu...eri/index.html

    Questo cosa significa ? Nulla semplicemente abbiamo passato la variabile id (cioè la 116) in una maniera più carina ed inoltre abbiamo usato 1 variabile nulla (cioè ad oggi non ci serve a nulla ma se un domani dovessimo inserire nuovi valori nei nostri script avremmo gia la strada aperta in questo caso la variabile nulla è /index )
    Vediamo cmq meglio il link che ho appena scritto :
    host : www.sito.it
    stringa : notizia/116/la-guerra-nel-mondo-dei-salumieri/index.html

    notizia sembra una directory
    116 sembra un altra
    la-guerra-nel-mondo-dei-salumieri una altra ancora
    index.html sempra la home di quella dir

    In realtà l'unico valore che ci interessa è 116 (cioè il nostro id originale) mentre la-guerra-nel-mondo-dei-salumieri serve soltanto a mettere ulteriori informazioni nella pagina (ed in questo caso nel rewrite avremo 2 condizioni)
    Altro consiglio che vi do eliminate punteggiatura,simboli (tipo :.,?=) lettere accentate (èéòàùì) e parentesi nella titolo dell'url (cioè la nostra finta la-guerra-nel-mondo-dei-salumieri) altra cosa se possibile togliete gli articoli lasciando le sole key che vi interessa far indicizzare .

    Nel secondo caso quello in cui passiamo il valore della variabile tramite nome dell'articolo allora qui dovremo prestare attenzione ad evitare il discorso della punteggiature e delle lettere accentate (tramite qualche espressione regolare del vostro linguaggio di programazione) e soprattuto tramite query al database con algoritmo di levenstein ma qui il discorso si farebbe più tecnico. Vi consiglio se siete alle prime armi con il rewrite di salvarlo nel database (cioè se usavate per tirar fuori l'articolo prima un valore che era già salvato nel db ora inserite anche l'url nel db al fine di aiutarvi con una semplice query : es per php con oop : <a href=$host/$data->url>$data->titolo</a> e cosi non potremo MAI sbagliare con url)

    Spero di essermi spiegato nel migliore dei modi (io la vedo una cosa tanto semplice e non vorrei aver omesso argomenti scontati per me ma tanto sono qui e se avete piacere possiamo trattare l'argomento insieme in questa pillola)
    PS: per i moderatori se non la considerate come pillola pensateci voi a farmi il rewrite del titolo

  2. #2

    Re: [Pillola]Riscrivere gli url tramite il rewrite del server

    Scusate la grammatica

  3. #3
    Very good

    Due cose non mi sono chiare:
    inoltre abbiamo usato 1 variabile nulla (cioè ad oggi non ci serve a nulla ma se un domani dovessimo inserire nuovi valori nei nostri script avremmo gia la strada aperta in questo caso la variabile nulla è /index )
    Questa cosa già me la dicevi nell'altro topic, ma non l'ho tanto capita... fammi un esempio con una regola di rewrite:
    codice:
    RewriteRule ^notizie/(.*)/index.htm$ /notizie.php?id=$1 [PT]
    Ok abbiamo aggiunto una var fittizia... un domani che mi serve usarla per passare un altro valore (metti "cat") come modifico la regola di rewrite?



    Nel secondo caso quello in cui passiamo il valore della variabile tramite nome dell'articolo [...] tramite query al database con algoritmo di levenstein ma qui il discorso si farebbe più tecnico. Vi consiglio se siete alle prime armi con il rewrite di salvarlo nel database (cioè se usavate per tirar fuori l'articolo prima un valore che era già salvato nel db ora inserite anche l'url nel db al fine di aiutarvi con una semplice query : es per php con oop : <a href=$host/$data->url>$data->titolo</a> e cosi non potremo MAI sbagliare con url)
    Qui non ci ho capito quasi nulla. Mi dai qualche link di approfondimento, chessò a uno script che usa la tecnica che descrivi o qualcos'altro?

  4. #4

    aggiungo

    Allora inizio con il considerare siti già indicizzati
    In questo caso è totalmente controproducente eseguire il rewrite dell'url in quanto se ad esempio avessimo la pagina :

    1) www.sitoweb.it/notizia.php?id=116
    sarebbe inutile trasformarla in una di questo tipo :
    2) www.sitoweb.it/notizia/116.html

    In quanto la pagina reale (cioè quella che esiste sul server) sarebbe la numero 1 (quella che è gia stata indicizzata) e la quale continuerebbe ad esistere anche se riscriviamo le nostre pagine . Il risultato di questa operazione sarebbe soltanto raddoppiare il numero di pagine presenti nella cache del motore ma duplicheremmo soltatno tutte quelle gia presenti
    Se si vuole riscrivere l'indirizzo di pagine già indicizzate, è opportuno approntare uno script di questo tipo (in pseudo-php tanto per capire cosa fa)

    Codice PHP:
    $url_della_pagina $_SERVER['REQUEST_URI'];
    $espressione_regolare "/\?/";
    //Verifichiamo che nell'url ci sia un '?', se lo 
    //troviamo assumiamo di trovarci di fronte l'url dinamico
    if(preg_match($espressione_regolare$url_della_pagina)) {
    //Se questa pagina è richiamata tramite url dinamico, allora
    $nuova_pagina_statica //...qui le stesse regole che
    // nell'htaccess trasformano la pagina da dinamica a statica
    header("Location:".$nuova_pagina_statica);
    //Redirect lato server alla pagina statica
    //ovvero questa stessa pagina dopo il seguente 'else' ;-)
    } else {
    //Qui ci va il normale contenuto della pagina

    Per i non-phpofili:
    Questo script controlla l'url RICHIESTO per vedere se è dinamico oppure statico. Nel primo caso, fa un redirect lato server (codice 302 così com'è, ma si può cambiare) alla medesima pagina con indirizzo statico.
    Per sapere a quale pagina reindirizzare basta analizzare l'indirizzo e usare le stesse espressioni che riscrivono l'url.

  5. #5
    [supersaibal]Originariamente inviato da Petro_suse91
    Very good

    Due cose non mi sono chiare:
    Questa cosa già me la dicevi nell'altro topic, ma non l'ho tanto capita... fammi un esempio con una regola di rewrite:
    codice:
    RewriteRule ^notizie/(.*)/index.htm$ /notizie.php?id=$1 [PT]
    Ok abbiamo aggiunto una var fittizia... un domani che mi serve usarla per passare un altro valore (metti "cat") come modifico la regola di rewrite?




    Qui non ci ho capito quasi nulla. Mi dai qualche link di approfondimento, chessò a uno script che usa la tecnica che descrivi o qualcos'altro? [/supersaibal]
    Praticametne se tu nella regola usi :

    RewriteRule ^notizie/(.*)/index.htm$ /notizie.php?id=$1


    avrai (titolo pagina = prova rewrite)
    notizie.php?id=1 diventa notizie/1/index.html

    ma se usi

    RewriteRule ^notizie/(.*)/(.*)/index.htm$ /notizie.php?id=$1&cat=$2

    notizie.php?id=1

    PUO

    diventare :

    notizie/1/prova-rewrite/index.html

    e cmq tu farai sempre e solo :

    select * from tabella where id='$_GET[id]' (weppos scusa per il tecnico)

    Però hai anche a disposizione la var cat dove tu un domani potrai mettere qualunque altra cosa . Magari oggi non ti serve ma un domani chissa e poi cosi facendo l'url sembra anche più bello

  6. #6

  7. #7
    [supersaibal]Originariamente inviato da Petro_suse91
    Aaaah ok allora va bene.... capito


    Riguardo all'url nel db, sai darmi qualche info in più?

    P.s. che ne dici dello scriptino che ho proposto per poter riscrivere "senza danni" url già indicizzati come dinamici? [/supersaibal]

  8. #8
    anche io avevo fatto una cosa simile (anzi l'avevo presa da hotscript e poi adattata) risultato ban dopo 2 mesi (era un sitarello da manicomio )

    No non metterlo
    Se la pagina è gia indicizzata lasciala cosi
    Se ne fai di nuove allora creala

    io non uso mai l'index

    Ultimamente sto studiando algoritmo di levis e devo dire che vengono fuori ottimi ma ottimi risultati

  9. #9
    [supersaibal]Originariamente inviato da stefano3804
    Ultimamente sto studiando algoritmo di levis e devo dire che vengono fuori ottimi ma ottimi risultati [/supersaibal]
    Sembra interessante questo levenstein, ne avevo già sentito parlare... ma che cosa fa, in sostanza? A che ambiti si applica?

  10. #10
    [supersaibal]Originariamente inviato da Petro_suse91
    Sembra interessante questo levenstein, ne avevo già sentito parlare... ma che cosa fa, in sostanza? A che ambiti si applica? [/supersaibal]
    levenstein è praticamente quello che ti suggerisce google quando cerchi qualcosa ma sbagli a cercare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.