- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- Riscrivere url senza mod rewrite
-
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.
-
@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
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.
-
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
-
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.
-
@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.
-
Beh, la stessa cosa che succede con il mod_rewrite...
-
Scusate, avrei un ulteriore domanda circa il rewrite.
Prima di riscrivere gli url, google aveva gia preso le pagine dinamiche del tipourl/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?