Uno dei tanti potenti moduli di Apache è mod_rewrite. È usato per la manipolazione degli URL, noti anche come URL di riscrittura. E ‘molto potente, ma molto complicato in natura. I principianti possono trovare un po ‘difficile da capire per la prima volta, ma anche le persone con conoscenza delle espressioni regolari saranno colpite dalla sua difficoltà d’uso.

Coloro che sono interessati ad un apprendimento, hanno bisogno di alcune conoscenze di base della comprensione delle espressioni regolari per cominciare. E per gli altri che sono qui per risolvere il problema o attuare mod_rewrite, cominciamo.

Il tuo server web supporta mod_rewrite?

Assicurarsi che si sta utilizzando server web Apache e mod_rewrite modulo è installato nel vostro server web. Per verificare questo si può contattare il proprio fornitore di servizi di hosting o controllare voi stessi utilizzando questi semplici step.

Step1. Creare un file di testo in bianco usando notepad o qualsiasi altro editor.

STEP 2. Metti nel file.

Step3. Salva come ‘info.php’ [Salva su Windows come "info.php" (con le virgolette doppie)].

Step4. Carica il file sul server web della radice o qualsiasi altra cartella.

Step5. Chiama il file nella url - http://your-domain.com/info.php e verificare se si vede mod_rewrite in ‘caricato i moduli di Apache’ sezione. In caso contrario, vi preghiamo di contattare il proprio fornitore di servizi di hosting e chiedere loro di installare / attivare mod_rewrite.

Nota: Se si ha accesso al file httpd.conf, si può verificare per mod_rewrite in quel file come bene. E anche il vostro httpd.conf deve essere configurato in modo da consentire FileInfo ignorare. Rivolgersi al proprio fornitore di servizi di hosting per qualsiasi server questioni connesse.

La prossima cosa volesse fare è controllare il tuo. Htaccess file. Fare un backup del vostro esistenti. Htaccess file in modo che nel caso in cui a causa di modifiche se il tuo server web non serve il tuo sito, puoi ripristinare la copia di backup.

Esempi di mod_rewrite

1. Descrizione - La tua attuale pagine sono chiamati usando index.php con parametro di URL ossia

http://www.example.com/index.php?url=category

e invece di questo URL, si desidera una bella e facile da leggere come URL http://www.example.com/category

Soluzione - Metti le seguenti righe nel tuo. Htaccess file.

RewriteEngine su

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

Nota: Se il file contiene già una linea ‘RewriteEngine su’, quindi non hai bisogno di mettere nuovamente a meno che non è stato impostato su off prima di mettere nelle vostre linee.

2. Descrizione - La tua attuale URL è

http://www.example.com/index.php?cat=category&subcat=subcategory

che volete vedere come

http://www.example.com/category/subcategory

Soluzione - Mettere sotto linee nel vostro file. Htaccess file

RewriteEngine su

^([^/ RewriteRule \ .]+)/([^/ \ .]+)/?$ / index.php? Cat = $ 1 & subcat = $ 2 [L]

3. Descrizione - si vuole avere a disposizione molte sottocategorie o delle categorie come

http://www.your-domain.com/category/subcat1/subcat2/subcat3/subcat4/subcat5/

che si dovrebbe riscrivere a

http://www.your-domain.com/index.php?cat=category&subcat1=subcat1&subcat2=subcat2 e così via …

Soluzione - Vedi sotto le linee ..

domain.com / categoria -> index.php? cat = categoria

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

domain.com / categoria / sottocategoria / -> index.php? cat = subcat categoria e sottocategoria =

^([^/ RewriteRule \ .]+)/([^/ \ .]+)/?$ / index.php? Cat = $ 1 & subcat = $ 2 [L]

domain.com/p1/p2/p3 / -> index.php? a = b & p1 = p2 & c = P3

^([^/ RewriteRule \ .]+)/([^/ \ .]+)/([^/ \ .]+)/?$ / index.php? A = $ 1 & b = $ 2 & c = $ 3 [L ]

domain.com/p1/p2/p3/p4 -> index.php? a = b & p1 = p2 & c = P3 e P4 d =

^([^/ RewriteRule \ .]+)/([^/ \ .]+)/([^/ \ .]+)/([^/ \ .]+)/?$ / index.php? Uno = $ 1 & b = $ 2 & c = $ 3 & d = $ 4 [L]

4. Descrizione - Il tuo URL ha una cartella e si desidera riscrivere per quella cartella. L’URL simile al http://domain.com/folder/index.php?url=name che volete vedere come http://domain.com/folder/name/

Soluzione - Luogo le seguenti righe nel tuo. Htaccess file

RewriteEngine su

RewriteRule ^ /([^/ cartella \ .]+)/?$ cartella / index.php? Url = $ 1 [L]

5. Descrizione - l’URL effettivo è http://example.com/index.php?page=hello che volete vedere come http://example.com/hello.htm

Soluzione - Luogo le seguenti righe nel tuo. Htaccess file

RewriteEngine su

^([^/ RewriteRule \ .]+). htm $ index.php? Page = $ 1 [L]

6. Descrizione - Il tuo URL è http://example.com/folder/index.php?page=hello che volete vedere come http://example.com/folder/hello.htm

Soluzione - Luogo le seguenti righe nel tuo. Htaccess file

RewriteEngine su

RewriteRule ^ /([^/ cartella \ .]+). htm $ cartella / index.php? Page = $ 1 [L]

Ci sono molte altre cose che puoi fare con mod_rewrite. Come e quando ho scoprire ulteriori esempi, vorrei mantenere l’aggiornamento di questa pagina. Non esitare a postare il tuo utilizzo del mod_rewrite, se già non contemplati qui e vorrei aggiungere alla lista di esempi.

Link di riferimento:

1. Documentazione di Apache

2. Pagina di Wikipedia per espressioni regolari

Fonte originale:

http://www.bloghash.com/2006/12/apache-mod_rewrite-examples/