• User

    Riscrivere url senza mod rewrite

    Salve a tutti, avrei ua domanda, dopo 4 giorni di attesa, per avere notizie sul mod rewrite, previa mia richiesta di attivazione su di un sito, mi è stato risposto che il mod_rewrite non e attivabile.
    Ora avei una certa fretta di far salire un po' le statistiche del sito e tutte le pagine interne sono dinamiche.
    Esiste un altro modo per riscrivere gli url senza usare il mod_rewrite?
    Grazie per le aventuali risposte.


  • User Attivo

    @ilariotoko said:

    Esiste un altro modo per riscrivere gli url senza usare il mod_rewrite?
    Grazie per le aventuali risposte.

    Ciao Ilariotoko
    sposto il 3d nella sezione più adatta, cosìcche ti si possa consigliare al meglio. 🙂

    Nel frattempo ti dico la mia: senza poter usare il mod-rewrite di php (o i filtri ISAPI rewrite se sei su asp) non c'è, apparentemente, modo di riscrivere url dinamici.

    Apparentemente dico perchè magari si potrebbe pensare, modificando il database, di scrivere un funzione che staticizzi in qualche maniera un contenuto, per poi farvi un include del contenuto dinamico stesso e redirect 301 da quello dinamico verso quello statico (301 se le pagine a contenuto dinamico sono già indicizzate)

    Magari ho detto una fesseria: aspettiamo che dicono gli esperti 🙂
    :ciauz:

    Aggiunto: altrimenti puoi sempre pensare di fare un cambio mainteiner verso un servizio di hosting che ti fornisca la possibilità di gestire il rewrite degli rul tramite mod rewrite. 🙂


  • User

    Se non hai la possibilità di usare il Mod Rewrite, l'unico modo per riscrivere gli URL è quello di creare fisicamente i file.

    Un esempio?

    Hai una tabella del db, per esempio: contenuti

    titolo url testo
    Kyword keyword.phpTesto della pagina.

    Ogni volta che immetti una nuova riga nel DB, con una funzioncina in PHP ti crei la pagina "statica".

    Altrimenti, prova a cercare un nuovo hoster 🙂


  • User Attivo

    Io uso questo codice php:

    
    **//
    // FUNZIONE CHE ELABORA LA STRINGA DI INPUT MODIFICATA AL FINE DI EVITARE
    // PROBLEMI CON LE INDICIZZAZIONI DI GOOGLE
    //
    function readInfo()
    {
    $_PINFO=array() ; 
    if (isset($_SERVER["PATH_INFO"]))
    { 
    // Determina i caratteri usati come separatori delle variabili 
    $separators=array("/","=") ; 
    $collection=$_SERVER["PATH_INFO"] ; 
    // Togliamo il primo slash da PATH_INFO 
    $collection=substr($collection,1);
    // Togliamo l'ultimo separatore per evitare problemi
    if (substr($collection,-1)==$separators[0])
    $collection=substr($collection,0,-1) ; 
    // Sicurezza: controlla valori inseriti dall'utente 
    $collection=strip_tags($collection) ; 
    $collection=escapeshellcmd($collection) ; 
    // Riduciamo i separatori nell'URL ad uno soltanto e utilizziamo un explode() estrarre le variabili e i loro valori 
    $collection = str_replace($separators[1], $separators[0], $collection); 
    $collection=explode($separators[0],$collection) ; 
    // Riempie di variabili l'array $_PINFO 
    foreach ($collection as $key=>$value)
    if (!($key%2))
    $_PINFO[$value]=$collection[$key+1] ; 
    }
    foreach ($_POST as $key => $val)
    $_PINFO[$key] = $val;
    return ($_PINFO);
    }
     
    **
    

    Che credo avessi trovato su html.it e che fa si che si possa avere un url del tipo:

    index.php/parametro1=valore1/parametro2=valore2/parametro3=valore3

    In un altro caso (dove, se non ricordo male, non funzionava neanche questo codice) ho risolto usando sempre solo 1 parametro, facendo una cosa così:

    index.php?parametrone=parametro1:valore1;parametro2=valore2;parametro3=valore3

    Questo si fa in maniera semplicissima in PHP.

    Entrambi i metodi funzionano e google riesce ad indicizzare anche url lunghissime.


  • User

    @Senamion said:

    Io uso questo codice php:

    >
    **//
    // FUNZIONE CHE ELABORA LA STRINGA DI INPUT MODIFICATA AL FINE DI EVITARE
    // PROBLEMI CON LE INDICIZZAZIONI DI GOOGLE
    //
    function readInfo()
    {
    $_PINFO=array() ; 
    if (isset($_SERVER["PATH_INFO"]))
    { 
    // Determina i caratteri usati come separatori delle variabili 
    $separators=array("/","=") ; 
    $collection=$_SERVER["PATH_INFO"] ; 
    // Togliamo il primo slash da PATH_INFO 
    $collection=substr($collection,1);
    // Togliamo l'ultimo separatore per evitare problemi
    if (substr($collection,-1)==$separators[0])
    $collection=substr($collection,0,-1) ; 
    // Sicurezza: controlla valori inseriti dall'utente 
    $collection=strip_tags($collection) ; 
    $collection=escapeshellcmd($collection) ; 
    // Riduciamo i separatori nell'URL ad uno soltanto e utilizziamo un explode() estrarre le variabili e i loro valori 
    $collection = str_replace($separators[1], $separators[0], $collection); 
    $collection=explode($separators[0],$collection) ; 
    // Riempie di variabili l'array $_PINFO 
    foreach ($collection as $key=>$value)
    if (!($key%2))
    $_PINFO[$value]=$collection[$key+1] ; 
    }
    foreach ($_POST as $key => $val)
    $_PINFO[$key] = $val;
    return ($_PINFO);
    }
     
    **
    >```  
    Che credo avessi trovato su html.it e che fa si che si possa avere un url del tipo:
     
    index.php/parametro1=valore1/parametro2=valore2/parametro3=valore3
     
    In un altro caso (dove, se non ricordo male, non funzionava neanche questo codice) ho risolto usando sempre solo 1 parametro, facendo una cosa così:
     
    index.php?parametrone=parametro1:valore1;parametro2=valore2;parametro3=valore3
     
    Questo si fa in maniera semplicissima in PHP.
     
    Entrambi i metodi funzionano e google riesce ad indicizzare anche url lunghissime.
    
    grazie per le risposte, infatti stavo testando proprio questo metodo.
    Posto, visto che lo sto ancora provando anche la mia opinione su tale metodo:
    
    Il rewrite funziona bene, l'unico neo è che bisogna modificare manualmente i link alle pagina di cui riscrivere l'url
    da: 
    www.miosito.it/pagina.php?variabile=valore
    a:
    www.miosito.it/pagina.php/veriabile=valore
    ne consegue che le pagina ottenute apparterranno virtualmente ad una sottocartella rispetto alla pagina in questione, detto cio va da se che bisogna modificare tutti i collegamenti del sito (javascript, css, immagini, etc, etc) trasformandoli da relativi a assoluti.

  • User Attivo

    Beh, la stessa cosa che succede con il mod_rewrite...


  • User

    Scusate, avrei un ulteriore domanda circa il rewrite.
    Prima di riscrivere gli url, google aveva gia preso le pagine dinamiche del tipo

    url/pagina.php?variabile=valore

    anche se nell'indice delle ricerche mi compariva solo la index, motivo per cui ho deciso di riscrivere gli url, però ora google, ha gia le vecchie pagine nella cache, cosa succede se si aggiungono anche le pagine de tipo:

    url/pagina.php/variabile=valore

    Non c'è il rischio di essere penalizzari per aver duplicato i contenuti?
    Dovrei usare il robot per nascondere le pagine?