Il Apache il server web è uno dei principali elementi costitutivi di Internet, che serve siti Web e applicazioni. È un sistema complesso con molte opzioni e una delle più importanti è il modulo Rewrite, o "mod_rewrite" in breve. In questo articolo, daremo un'occhiata agli usi di mod_rewrite, quindi esploreremo come configurarlo sul tuo sito basato su Apache.
Lo scopo del modulo di riscrittura di Apache
Lo scopo di questo modulo è riscrivere gli URL in vari modi utili. Ciò significa che quando gli utenti arrivano al tuo sito Web tramite un URL (digitandolo o selezionando un collegamento che lo contiene), "finiranno" su un altro URL. Ci sono una serie di motivi per cui potresti volerlo fare.
Reindirizzamento degli utenti
Puoi utilizzare mod_rewrite per indirizzare gli utenti da pagine vecchie e obsolete che potrebbero ancora apparire nei risultati di ricerca, a pagine più recenti e aggiornate. Ad esempio, supponiamo di avere una pagina su https://www.mysite.com/review2015; se qualcuno lo trova come collegamento e lo seleziona, puoi usare una regola di riscrittura per indirizzarlo a http://www.mysite.com/review2019.
URL più facili da ricordare
Probabilmente hai visto link relativi all'e-commerce con URL come https://www.thestore.net/3d78654954c29ace998658. Gli sviluppatori usano etichette come questa per assicurarsi che gli articoli abbiano un identificatore univoco, ma per i tipi non tecnici è difficile da ricordare.
Fortunatamente, una regola di riscrittura può aiutarti a pubblicizzare un bel URL, come https://www.thestore.net/notebooks/spiral/3-subject-spiral/, che, se seguito, conduce un visitatore a quello con l'URL brutto.
Nomi di pagina unici
All'inizio del Web, era comune vedere il nome effettivo dei file di pagina quando si visitava un sito Web. Ad esempio, la pagina "Chi siamo" di un sito Web potrebbe essere " http://www.someguys.org/about.html."
Ma ci sono un paio di motivi per cui non li vedi più molto. Il primo è che molti siti Web sono gestiti da sistemi di gestione dei contenuti, che hanno solo una manciata di file di pagina effettivi. Il resto del contenuto viene aggiunto dinamicamente man mano che la pagina viene pubblicata, quindi tutte le pagine potrebbero avere lo stesso URL, ad esempio " http://www.someguys.org/index.php." La riscrittura degli URL ti consente di avere l'aspetto di queste pagine separate, pur utilizzando un CMS dinamico per gestire il tuo sito web.
URL più comprensibili
I motori di ricerca posizionano le pagine più in alto quando hanno URL facilmente comprensibili. Ciò significa che è vantaggioso per i siti Web avere un URL come " https://www.thecompany.com/services/consulting" invece di " https://www.thecompany.com/index.php? section=services&page=consulting", poiché l'ultima parte sembra più un codice che un URL.
La riscrittura ti assicura di mostrare sempre il tuo volto migliore, dal punto di vista dell'URL.
Come impostare mod_rewrite sul tuo sito
L'utilizzo della riscrittura degli URL su Apache richiede due componenti principali:
- Abilitazione del modulo di riscrittura effettivo all'interno di Apache
- Elenco delle regole di riscrittura necessarie in un file .htaccess.
Mentre gli usi per la riscrittura degli URL si applicano ugualmente ad altri server Web come IIS o nginx, mod_rewrite e i metodi seguenti si applicano solo ad Apache.
Abilita la funzione di riscrittura in Apache
Innanzitutto, dovrai attivare la funzione di riscrittura nella tua installazione di Apache.
-
Dovrai trovare dove si trova il file di configurazione di Apache. Questo dipenderà dal programma di installazione che hai utilizzato.
- Su Windows dovresti cercare una directory chiamata "/conf" nella directory di installazione di Apache.
- Sul popolare programma di installazione XAMPP di macOS, si trova in /Applications/XAMPP/xamppfiles/apache2/conf.
- Su Linux, apparirà nella directory /etc/apache2. In ogni caso, stai cercando un file chiamato "httpd.conf", "http.conf" o "apache2.conf", quindi puoi anche usare la funzione di ricerca del tuo sistema operativo per cercarli.
Apri il file di configurazione in un editor di testo, come Blocco note di Windows o TestoModifica su macOS.
Cerca la riga "#LoadModule rewrite_module module/mod_rewrite.so" e rimuovi l'hashtag all'inizio. Questo denota un commento, il che significa che quando è presente, il server Apache ignorerà tutto su quella riga. Rimuovi l'hashtag e la prossima volta Apache eseguirà quella riga all'avvio.
Salva il file di configurazione e riavvia il server Apache.
-
In alternativa, su alcune versioni di Linux vedrai alcune directory come "/etc/apache2/mods-available" e "/etc/apache2/mods-enabled." Questi contengono frammenti di file di configurazione che vengono messi insieme dinamicamente. In questo caso, puoi eseguire i seguenti comandi per abilitare prima il modulo di riscrittura, quindi riavviare il server Apache:
sudo a2enmod riscrivi
systemctl riavvia apache2 Ora il tuo server Apache è pronto per riscrivere gli URL per te. Solo ora devi dirgli quali riscrivere e in quali circostanze.
Definire le regole Mod_Rewrite sul tuo sito
Dovrai definire le regole per mod_rewrite usando il linguaggio delle espressioni regolari. Fortunatamente, c'è un po' di aiuto disponibile. Per una determinata riscrittura che desideri abilitare, puoi usare uno strumento come il generatore di regole di VisioSpark.
Inserisci l'URL da cui vuoi riscrivere, cioè quello che un utente inserirà, nel campo A partire dal: campo.
-
Inserisci l'URL in cui vuoi riscrivere, ovvero quello in cui andrà a finire l'utente, nel campo Per: campo.
-
Seleziona il controllo Captcha, quindi seleziona Partire. Il generatore dovrebbe quindi fornire un risultato che inizia con "RewriteRule.
Se ti capita di trovare un altro generatore, questi passaggi potrebbero essere leggermente diversi, ma si spera nello stesso campo da baseball.
Inserimento delle regole Mod_Rewrite per il tuo sito
Quindi questo è fantastico, un modo punta e clicca per creare queste regole. Ma dove le metti?
Per utilizzare le regole su un sito web, dovrai creare un file chiamato ".htaccess" nella radice del sito web. È in qualche modo dipendente dalla piattaforma dove sono archiviati i file per un particolare sito Web, ma dovrai averlo capito per distribuire il tuo sito Web lì in primo luogo.
Potrebbe esserci già un file con quel nome. Se è così, ottimo! Puoi semplicemente aggiungere le tue righe a quel file.
Crea un nuovo file di testo con il nome ".htaccess" nella radice del tuo sito web.
-
Nella prima riga, inserisci il codice sottostante. Questo dice al server che vuoi abilitare la riscrittura per il sito web corrente.
RiscriviMotore acceso
-
Quindi, aggiungi ciascuna delle linee che hai creato con il generatore. L'inizio del nostro file sarebbe simile a questo:
RiscriviMotore acceso
RewriteRule ^notebooks/spiral/3-subject-spiral/$ /3d78654954c29ace998658?&%{QUERY_STRING} Come per qualsiasi modifica alla configurazione di Apache, è una buona idea riavviare il server.
L'uso di Mod_Rewrite richiede tempo, ma i risultati ne valgono la pena
L'uso della funzione mod_rewrite su Apache richiede sicuramente un certo sforzo. Devi giocherellare con i file di configurazione basati su testo, trovare un modo per ottenere espressioni regolari molto pignoli in quei file e sapere come interrompere e riavviare manualmente il servizio. Probabilmente richiederà molte prove ed errori prima di ottenere qualcosa che non si traduca in un errore e si comporti correttamente.
Detto questo, una volta capito, otterrai grandi benefici da mod_rewrite. I tuoi visitatori saranno in grado di ricordare meglio i tuoi URL e il tuo posizionamento su Google probabilmente migliorerà. Dopotutto, gli "URL graziosi" risultanti non sono solo per lo spettacolo. Sono anche funzionali.