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 intermedio a Mod Rewrite

1 Cosa fa il mod rewrite ?

Il mod rewrite serve per il vostro server apache a far si che le pagine dinamiche (in questo caso in php) cambino totalmente estensione e sembrino pagine html statiche

2 Per cosa serve la trasformazione da dinamiche a statiche ?

Questa trasformazione serve a far si che la vostra pagina venga assimilata meglio da un motore di ricerca. Un motore di ricerca potrebbe avere qualche difficoltà a seguire un link del genere:
codice:

http://www.esempio.it/index.php?page=notizie&id=69

Allora tramite il rewrite dell'url potremo trasformare il link sopra in una pagina di questo tipo:
codice:

http://www.esempio.it/index/notizie/69.html

Una pagina di questo tipo vi garantisco(l'ho provato personalmente nella mia piccolissima esperienza) è decisamente meglio vista dai motori di ricerca (google in primis)
Io in questo caso ho utilizzato 2 variabili nella mia url in php :

    * page
    * id

Ovviamente maggiori saranno le variabili minore sarà la considerazione che avrà della vostra pagina il motore di ricerca.

3 Come posso far si che il mio apache mi accetti il rewrite ?

- A -Per fare questo dovrete aver caricato un modulo di apache chiamato appunto mod_rewrite

mod_rewrite.c

Per fare questo dovrete andare nel file di configurazione di apache: httpd.conf e decommentare le seguenti righe
codice:

LoadModule rewrite_module modules/mod_rewrite.so

AddModule mod_rewrite.c

Fatto questo restartare apache .
- B - Provate a lanciare un file con dentro scritto :

codice PHP:


phpinfo();

Adesso nella pagina che otterrete cercate dove c'e scritto Loaded Modules e se vi sarà scritto mod_rewrite sarete pronti a partire per iniziare il vostro viaggio per quanto riguarda la riscrittura dei vostri indirizzi!!

La maggior parte di noi (credo) si trova in host presso server in cui ovviamente non potrà modificare il file di configurazione al chè passate immediatamente al punto - B - e vedrete subito se sul vostro server il servizio è attivo.

4 Ok sul mio server il servizio è attivo cosa devo fare ?

Allora partendo dal presupposto che il rewrite funziona sia su macchine con OS windows che Linux(io in locale l'ho fatto su win e in hosting su linux).
Dovrete creare un file che chiameremo .htaccess .
Dentro questo file dovremo scrivere la regola che vogliamo far interpretare al nostro web server.
Vi faccio 3 esempi di quello che si può fare (poi chi è più bravo di me con le espressioni regolari può fare miracoli):


* * * ESEMPIO 1 * * *

Se noi ad esempio utilizzassimo il sistema di template in php messo a disposizione dall'esempio del sito pho.html.it
QUI L'ARTICOLO : http://www.holyguard.net/articoli/id_582/idcat_31/pro.html

e qui l'esempio :
http://151.1.209.132/ft/index.php

Avremo delle pagine dimaniche di questo tipo :
codice:

www.sito.com/index.php?page=notizie&id=69

Cosa significa questo ?
Significa che noi stiamo utilizzando 2 pagine e 2 variabili:

Le pagini in questo caso sono index.php che avrà come codice una cosa più o meno simile
codice PHP:


$p="main";  //pagina di default per i contenuti centrali
if(isset($_GET['page'])){  //pagina passata via parametro
    $p=$_GET['page'];
    if($p!=basename($p) || !preg_match("/^[A-Za-z0-9-_]+$/",$p) || $p=="index" || !file_exists($p.".php"))
        $p="error";     //pagina di errore
    }
    include($p.".php");



Cioè include le pagine che le vengono passate tramite la variabile $page(?page=nomepagina) nella pagina che si sta visualizzando

E poi c'è la pagina notizie.php che riceve i valori dalla variabile $id (&id=) e che la utilizzerà più o meno in questo modo :
codice PHP:


$query = mysql_query("Select * from notizie where id='$_GET[id]'");
Allora avrete l'url detto in precedenza :
codice:

http://www.sito.com/index.php?page=notizie&id=69

Ma tra poco lo trasformeremo in una pagina di questo tipo:
codice:

http://www.sito.com/index/notizie/69.html

Per farlo non dovrete far altro che nel file .htaccess scrivere la seguente regola:
codice:

RewriteEngine On
RewriteRule ^index/([^/]+)/([^/]+).html index.php?page=$1&id=$2 [L]

E questa vi permette di fare la trasformazione dei link come detto sopra

* * * ESEMPIO 2 * * *

Il mio sito ha soltanto una variabile nell'url di questo tipo
codice:

http://www.sito.com/notizie.php?id=69

Come dovrà essere la mia regola per il file .htaccess ??
codice:

RewriteEngine On
RewriteRule ^notizie/([^/]+).html notizie.php?id=$1 [L]

Questa mi permetterà di trasformare la pagina in
codice:

http://www.sito.com/notizie/69.html

* * * 3 ESEMPIO * * *

Questo non differisce molto dai primi 2 ma serve soltano a far capire che ampio utillo si possa fare del rewrite:

Supponiamo che io utilizzi la classe fpdf per creare al volo file in formato .pdf
Per fare questo avremo delle pagine con dentro la query al db per estrapolare i dati e poi le varie istruzioni per la classe:

codice PHP:


$query = mysql_query("Select * from notizie where id='$_GET[id]'");

//............. etc etc

//includiamo la classe
require('fpdf.php');

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Image('img/logo.jpg', 50, -10, 105, 48);
$pdf->SetTextColor(255,080,100);
$pdf->write(8, "                              $titolo\n\n");
$pdf->SetTextColor(0,0,0);

$pdf->write(8, "-Autore: $autore\n\n");
$pdf->write(8, "Testo: $testo\n");
...... etc etc

Per richiamare il file pdf scriveremo una url di questo tipo qui :
codice:

http://www.sito.com/pdf_notizie.php?id=69

Invece tramite il nostro rewrite potremo creare un finto (o fasullo come preferite) file pdf vero e proprio:
codice:

http://www.sito.com/pdf_notizie/69.pdf

A tutti gli effetti sembra davvero un file pdf mai più andremmo a pensare che in realtà è una pagina in php
Per realizzarlo basta scrivere nel rewrite questo:
codice:

RewriteEngine On
RewriteRule ^pdf_notizie/([^/]+).pdf pdf_notizie.php?id=$1 [L]

Cioè cambiare semplicemente l'estensione nella regola.
Un pochino più sofisticato potrebbe essere anche utizzare nell'url cosa di questo tipo:
codice:

http://www.sito.com/notizie/69-titolo-notizia.html

Questo serve (a quanto ho letto nell'ultimo mese nella sezione motori di ricerca di questo forum e da quanto ho visto nelle varie agenzie di SEO = search engine optimized) a far digerire ancora meglio le nostre pagine ai vari MDR.
La rule che dovrete usare sarà sempre la stessa:
codice:

RewriteEngine On
RewriteRule ^notizie/([^/]+).html notizie.php?id=$1 [L]

però nella vostra pagina php (cioè la notizie.php) userete il comando explode e metteremo questo :

codice PHP:


$pagina = $_GET[id];
$divisore = explode("-", $pagina);
$id =  $divisore[0];// ti restituisce il numero che hai prima del -
$query = mysql_query("Select * from notizie where id='$id'");

Spero di essermi spiegato in modo chiaro e che vi possa essere utile


Commenti

Molto buono by Adam76

19/10/2008 
Molto buono questo tutorial, grazie per le dritte


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