Main Menu




browser lang:en

Users Area

Client Login

today cache size is:0

 

 


Commenti

RE:trasformare in .gz by boris
10/03/2011 by marco

22/02/2011 by bono
RE:trasformare in .gz
22/02/2011 by boris
trasformare in .gz
21/02/2011 by bono
RE:Ma a che serve sta roba???
05/02/2011 by dwarf79
Ma a che serve sta roba???
28/01/2011 by Luca
Rapidshare hotfile fileserver download
08/01/2011 by Rapidshare hotfile fileserver download
re:xml
03/12/2010 by david68

Leggi tutto »


RAPIDQ

Rapid-Q:The lost files
My old library where i have collected all the rapidq scripts and italian help


Today my pagerank is: Free Page Rank Tool
Upbooking - free booking engine

PHP - Friendly URLS, routing, Mod_rewrite e htaccess

Gli URL amichevoli (o friendly URL) si stanno giá usando da molto tempo, questo meccanismo consiste nell'accorciare gli URL e renderli il piú possibile "umani". Perché questo? In primis ottimizzazione SEO per motori di ricerca, di seguito per un fattore mnemonico o anche per questioni di estetica. un esempio:

www.example.com/index.php?categoria=15&pagina=3&ordine=asc

Questo é meglio:

www.example.com/categoria/15/pagina/3/ordine/asc

o ancora meglio:

www.example.com/15/3/asc

¿Come si ottengono?

Dipende principalmente dal tipo di server su cui stiamo lavorando.Se si tratta di Internet Information Server (IIS) potremo ottenerli usando ISAPI_Rewrite tra gli altri. Se invece stiamo usando Apache, possiamo usarli usando un file .htaccess, ma solo se abbiamo attivo il mod_rewrite sul server.
Sicuramente ci saranno altre alternative ma io personalmente conosco solo questa.

In questo articolo vi spiegheró come creare Friendly URLS con APACHE, mod_rewrite ed .htaccess (piú un poco di aiuto da parte del PHP), usando un archivio index.php come ricettore di tutte le petizioni, questa tecnica viene chiamata URL ROUTING e permette di integrare facilmente i friendly URLS con le tecniche di MVC che ho descritto in passato.

proviamo l' .htaccess

l' .htaccess di prova(e definitivo) che andiamo ad usare é il seguente:

<ifmodule mod_rewrite.c>
RewriteEngine On

#se l'url sollecitato non é un file(esistente), continuare...
RewriteCond %{REQUEST_FILENAME} !-f

#se l'url sollecitato non é una directory(esistente), continuare...
RewriteCond %{REQUEST_FILENAME} !-d

#si prende tutto il -query_string- e si passa come parametro route
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
</ifmodule>
e un archivio .php per provare:
Questi due archivi li caricheremo nel server in una directory-di-prova e l'url per provare se tutto funziona bene sará:

www.tusito.com/directory-di-prova/questo/funziona/bene

Se si stampa a schermo “questo/funziona/bene” siamo fortunati, tutto é perfetto, al contrario, alla fine dell'artículo vi passeró alcune opzioni.
Recuperando le variabili di l'URL

Come avrete visto nel esempio, la cosa bella é che tutte queste variabili che stiamo inviando come se fossero directory, rimangono immagazzinate in una variabile GET chiamata route grazie al compito che realizzano l' .htaccess e il mod_rewrite. Sappiamo giá dove sono le variabili, adesso vediamo come usarle.
Nome – Valore

Se andiamo a passare per URL il nome della variabile e il suo corrispondente valore come nell'esempio:

www.example.com/categoria/15/pagina/3/ordine/asc

Il contenuto del tuo index.php dovrá essere qualcosa del genere:

function getVariables($url)
{
	//cancelliamo la barra finale
	$url = preg_replace('/\/$/', '', $url);
 
	//separiamo le parti dell'url e le contiamo
	$parti = explode('/', $url);
	$contParti = count($parti);
 
	//se la quantitá di parti non é pari ritorniamo false, all'essere impari una variabile rimarrebbe senza valor e questo non é possibile
	if($contParti % 2 != 0)
		return false;
 
	$variabili = array();
	for($c = 0; $c < $contParti; $c = $c + 2)
	{
		//Accumuliamo i pari di valori(per noi variabili) nell'aggiusto
		$nome = pulire($parti[$c]);
		$valore = pulire($parti[$c + 1]);
		$variabili[$nome] = $valore;
	}
 
	return $variabili;
}
 
function pulire($valore)
{
	//permettiamo solo lettere(a-Z), numeri e trattini
	return preg_replace('/[^a-zA-Z0-9-_]/', '', $valore);
}
 
$_GET = getVariables($_GET['route']);
 
if($_GET)
{
	echo '< pre>';
	print_r($_GET);
	echo '< /pre>';
}else{
	echo 'Non ci sono variabili GET';
}
Esempio nel mio sito: urls-generiche/valori/miavariabile/valore/altravariabile/altrovalore

Array
(
[miavariabile] => valore
[altravariabile] => altrovalore
)


Solo valori

Se con l'esempio anteriore ci pare che l'URL rimanga molto largo, possiamo cancellare il nome dalle variabili e ricevere i valori come un semplice aggiusto. Dobbiamo prestare molta attenzione a rimanere ordinati e mantenere un ordine nei parametri o creeremo solo molta confusione.
function getVariables($url)
{
	//cancelliamo la barra nel finale
	$url = preg_replace('/\/$/', '', $url);
 
	//separiamo le parti/variabili dell'url e le contiamo
	$variabili = explode('/', $url);
	$contVariabili = count($variabili);
 
	for($c = 0; $c < $cantVaraibles; $c++)
	{
		//Accumuliamo i valori in un aggiusto
		$variabili[$c] = pulire($variabili[$c]);
	}
 
	return $variabili;
}
 
function pulire($valore)
{
	//permettiamo solo lettere(a-Z), numeri e trattini
	return preg_replace('/[^a-zA-Z0-9-_]/', '', $valore);
}
 
$misVariablesGet = getVariables($_GET['route']);
 
if($misVariablesGet)
{
	echo '< pre>';
	print_r($misVariablesGet);
	echo '< /pre>';
}else{
	echo 'Non ci sono variabili GET';
}
Esempio nel mio sito: urls-generiche/valori/valore/altrovalore

Array
(
[0] => valore
[1] => altrovalore
)

Attenzione:

Per le regole che abbiamo impostato nel nostro .htaccess stiamo chiedendo che tutto “query_string” che non esiste (quello che comunemente ci devolve un errore 404) sia redirezionato alla nostra index.php. É necesario sempre tenerlo da conto, perché se entriamo in questo sito e cerco un file che non esiste, saró redirezionato alla index.php. La maniera migliore per costruire una pagina 404 personalizzata (e SEO Optimized).

Se pretendiamo utilizzare un URL come minisito.com/sezione/3 é necessario ricordarsi di non sovrapporre nessuna variabile che simula una directory con una directory reale, non a caso stiamo trattando di URL GENERICHE

Se caricando un file .htaccess e provandolo si ottiene un errore é probabile che non ci sia il mod_rewrite attivato oppure l'host non permette l'utilizzo di un file .htaccess

Se stiamo lavorando in un server locale e abbiammo problemi é molto probabile che editando l'archivio httpd di apache/conf e abilitando il mod_rewrite riusciremo a risolvere il problema, in particolare dovremo decommentare la linea che dice #LoadModule rewrite_module cancellandole il # che ha davanti.


Commenti

Inserisci un commento

Titolo
Messaggio
Nome Utente
e-mail (se vuoi ricevere le risposte a questo post anche via mail)

Users

Videos


Scripts & Tutorials

Linux - I comandi principali

07/11/2010 

Per i piú smemorati, una lista di comandi principali usati con linux cd : cambia la directory corrente. ls : mostra il…

in:Scripts e tutorials (0 commenti)

Search Engine Optimization - 130 parametri usati da google per valutare il tuo sito

26/08/2010 

Con l'avvento di caffeine molti webmaster si sono trovati a dover rivedere tutte le strategie SEO per i…

in:Scripts e tutorials (0 commenti)

Inserisci Google BUZZ nel tuo sito con Google Buzz Widget Jquery Plugin

15/02/2010 

Questo è un widget di jQuery per il nuovo social network di Google-Buzz-che è possibile incorporare ovunque per…

in:Scripts e tutorials (0 commenti)

Javascript - Codifica/decodifica di password nei file ste di Dreamweaver

17/01/2010 

Questo é un pratico codificatore/decodificatore/decriptatore (chiamatelo come volete) di password inserite nei file di configurazione .ste su dreamweaver function…

in:Scripts e tutorials (0 commenti)

PHP - Uno script per calcolare il PageRank di Google

10/01/2010 

Il PageRank è un algoritmo che usa Google per valutare la credibilità e l'autorevolezza delle pagine Web. Il…

in:Scripts e tutorials (8 commenti)

PHP - Download file con limite di velocita'

20/10/2009 

Con questo script possiamo limitare il download di un file dal nostro server php; il limite di velocitá…

in:Scripts e tutorials (0 commenti)

PHP - Salvare immagini remote sul proprio server usando CURL

12/10/2009 

Alcuni host hanno disabilitati nei settaggi del.ini i comandi allow_url_fopen. Questo significa anche non poter usare i vantaggi…

in:Scripts e tutorials (2 commenti)

PHP - Short Url: due funzioni per creare link brevi

06/10/2009 

Gli SHORT URLS fanno ormai parte di quelle cose di internet che ci suonono terribilmente familiari; per capirci…

in:Scripts e tutorials (0 commenti)

Leggi tutto »


Tag Clouds


Linux comandi principaliSearch Engine Optimization parametri usati google valutare sitoInserisci Google BUZZ sito Google Buzz Widget Jquery PluginJavascript Codificadecodifica password file DreamweaverPHP script calcolare PageRank GooglePHP Download file limite velocitaPHP


Add to Technorati Favorites