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

Tutorial base a Mod Rewrite - cap.2 - mod_rewrite in pratica

mod_rewrite in pratica

2.0- Let's check it out!
Procediamo per casi analizzando alcuni URL-tipo che ognuno di noi ha incontrato almeno una volta. Sono solo degli esempi, riadattabili alle proprie esigenze. Il consiglio è di leggere in modo lineare tutti i casi, e non solo la parte finale.

Lo scenario è la sezione news di un sito.
Ricordate che in ogni file htaccess dovete inserire, prima delle regole, la direttiva RewriteEngine On.

2.1- Riscrittura "base"
URL prima dell'intervento: www.domain.tld/news/index.php?id=1234
URL dopo l'intervento: www.domain.tld/news/notizia-1234.html

Codice:


RewriteRule ^notizia-([0-9]+)\.html$ index.php?id=$1
  

- ([0-9]+) uno o più (+) caratteri numerici da 0 a 9 ([0-9])
- \.html indica ".html" (. è un metacarattere che vuol dire qualsiasi carattere, dobbiamo effettuare l'escape).
- $1 viene sostituito con il valore "trovato" dalla regexp ([0-9]+)

Ok, abbiamo tolto la querystring (hai detto niente!). Ma non è proprio il sistema più raffinato e la semantica è a 0.

2.2- Gestire più parametri
URL prima dell'intervento: www.domain.tld/news/index.php?id=1234&cat=recensione
URL dopo l'intervento: www.domain.tld/news/recensione-1234.html

Codice:


RewriteRule ^(.+)-([0-9]+)\.html$ index.php?id=$2&cat=$1
  

Consiglio: invece di usare (.+) (qualsiasi carattere in qualsiasi quantità) è più saggio usare ([^/]+) che vuol dire "qualsiasi carattere tranne lo slash in qualsiasi quantità".

2.3- Associazioni tra ID e stringhe
URL prima dell'intervento: www.domain.tld/news/categoria.php?id=2
URL dopo l'intervento: www.domain.tld/news/recensioni.html

Codice:

RewriteRule ^([^/]+)\.html$ index.php?nomecat=$1

Codice PHP:


  $cat = $_GET['nomecat'];
  $categoria = mysql_query("SELECT id FROM categorie WHERE nome='$cat'");
  if (mysql_num_rows($categoria)==0) {
  Make404(......);
  } else {
  $categoria = mysql_num_rows($categoria);
  $news = mysql_query("SELECT .... FROM news WHERE categoria='$categoria[0]'");
  ShowNews(......);
  } 
    
Nota bene: è possibile eliminare l'ID contenuto nell'URL se e solo se la corrispondenza ID<->stringa è biunivoca!

2.4- Il caso ideale
URL prima dell'intervento: www.domain.tld/news/index.php?id=1234
URL dopo l'intervento: www.domain.tld/news/recensioni/php6-usera-goto-1234.html

Codice:


RewriteRule ^([^/]+)/([^/]+)-([0-9]+)\.html$ index.php?id=$3&cat=$1&titolo=$2
    

Codice PHP:


  $newsid = $_GET['id']; // non serve fare il cast con (int)
  $news = mysql_query("SELECT ... FROM news WHERE id='$newsid'");
  if (mysql_num_rows($news)==0) {
  Make404(......);
  } else {
  .....
  // supponiamo di avere in $cat la categoria letta dal database
  // e in $titolo il.. titolo ovviamente
  if ($cat != $_GET['cat'] || ottimizza($titolo) != $_GET['titolo']) {
  // è stato cambiato titolo o categoria
  make301('http://www.domain.tld/news/' . $cat . '/' . $titolo . '-' . $newsid . '.html');
  }
 NewsClass:ShowNews(......);
  } 
     

* la funzione ottimizza deve essere la stessa usata per mostrare gli URL nella pagina con l'elenco delle news per evitare problemi di doppi-redirect e serve per eliminare spazi, caratteri accentati, ecc.
* la funzione make301 deve inviare un header 301, un header location e bloccare lo script (con exit; )
* la semantica di questi URL è molto buona (un file chiamato come la news contenuto in una directory correlata)
* se la news viene spostata di categoria o rinominata, viene automaticamente generato un header 301 invece di un 404


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