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.
-Creare un file di testo in bianco usando notepad o qualsiasi altro editor.
-Metti nel file.
-Salva come ‘info.php’ [Salva su Windows come “info.php” (con le virgolette doppie)].
-Carica il file sul server web della radice o qualsiasi altra cartella.
-hiama 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
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.
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]
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]
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 – Metti le seguenti righe nel tuo. Htaccess file
RewriteEngine su
RewriteRule ^ /([^/ cartella \ .]+)/?$ cartella / index.php? Url = $ 1 [L]
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]
Descrizione – Il tuo URL è http://example.com/folder/index.php?page=hello che volete vedere come http://example.com/folder/hello.htm
Soluzione – Metti 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.