Hai mai sentito la necessità di modificare la configurazione del tuo sito Web in esecuzione su un server Web Apache senza avere accesso come root ai file di configurazione del server (httpd.conf
)? Questo è il .htaccess
il file è per.
Il .htaccess
fornisce un modo per apportare modifiche alla configurazione del tuo sito web in base alla directory. Il file viene creato in una directory specifica che contiene una o più direttive di configurazione che vengono applicate a tale directory e alle relative sottodirectory. Nell'hosting condiviso, dovrai utilizzare un .htaccess
per apportare modifiche alla configurazione del tuo server.
[ Potrebbero interessarti anche: 6 competenze di amministratore di sistema necessarie agli sviluppatori web ]
Usi comuni del file .htaccess
Il .htaccess
il file ha diversi casi d'uso. Gli esempi più comuni includono:
- Reindirizzamenti per determinati URL
- Carica pagine di errore personalizzate, come 404 pagine
- Forza il tuo sito web su HTTPS anziché HTTP
- Consenti o nega l'accesso al tuo sito web a indirizzi IP specifici
- Proteggi con password alcune directory sul tuo server
Quando non usare .htaccess?
Il .htaccess
è comunemente usato quando non si ha accesso al file di configurazione del server principale httpd.conf
o la configurazione dell'host virtuale, che avviene solo se hai acquistato l'hosting condiviso. Puoi ottenere tutti i casi d'uso sopra menzionati modificando i file di configurazione del server principale (ad esempio, httpd.conf
) o file di configurazione dell'host virtuale, quindi non dovresti usare .htaccess
quando hai accesso a quei file. Qualsiasi configurazione che devi inserire in un .htaccess
il file può essere aggiunto altrettanto efficacemente in una
Motivi per evitare di usare .htaccess
Ci sono due ragioni per evitare l'uso di .htaccess
File. Diamo un'occhiata più da vicino.
Prima :Rendimento - Quando AllowOverride è impostato per consentire l'uso di .htaccess
file, httpd
cercherà .htaccess
file in ogni directory a partire dalla directory padre. Ciò causerà un impatto sulle prestazioni, indipendentemente dal fatto che tu lo stia utilizzando o meno. Il .htaccess
il file viene caricato ogni volta che viene richiesto un documento da una directory.
Per avere una visione completa delle direttive che deve applicare, httpd
cercherà sempre .htaccess
file che iniziano con la directory padre fino a raggiungere la sottodirectory di destinazione. Se viene richiesto un file dalla directory /public_html/test_web/content
, httpd
deve cercare i seguenti file:
/.htaccess
/public_html/.htaccess
/public_html/test_web/.htaccess
/public_html/test_web/content/.htaccess
Quindi, sono stati eseguiti quattro accessi al file system per ogni accesso al file dal contenuto di una sottodirectory anche se il file non è presente.
Secondo :Sicurezza - concede agli utenti il permesso di apportare modifiche a .htaccess
file dà loro il pieno controllo sulla configurazione del server di quel particolare sito Web o host virtuale. Qualsiasi direttiva nel .htaccess
ha lo stesso effetto di qualsiasi file inserito in httpd
file di configurazione stesso e le modifiche apportate a questo file sono istantaneamente attive senza la necessità di riavviare il server. Questo può diventare rischioso in termini di sicurezza di un server web e di un sito web.
Abilita il file .htaccess
Per abilitare il .htaccess
file, devi disporre dei privilegi sudo/root sul server.
Apri il httpd
file di configurazione del tuo sito web:
/etc/httpd/conf/test.conf
Dovresti aggiungere la seguente direttiva di configurazione nel file host virtuale del server per consentire il .htaccess
nella DocumentRoot directory. Se le seguenti righe non vengono aggiunte, il .htaccess
il file non funzionerà:
</VirtualHost>
<Directory /var/www/test.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Nel caso dell'hosting condiviso, ciò è già consentito dai fornitori di servizi di hosting. Tutto quello che devi fare è creare un .htaccess
file nel public_html
directory alla quale il fornitore di servizi ti ha concesso l'accesso e alla quale caricherai i file del tuo sito web.
URL di reindirizzamento
Se il tuo obiettivo è semplicemente reindirizzare un URL a un altro, il Reindirizzamento la direttiva è l'opzione migliore che puoi usare. Ogni volta che una richiesta proviene da un client su un vecchio URL, la inoltra a un nuovo URL in una nuova posizione.
Se desideri eseguire un reindirizzamento completo a un dominio diverso, puoi impostare quanto segue:
# Redirect to a different domain
Redirect 301 "/service" "https://newdomain.com/service"
Se desideri semplicemente reindirizzare un vecchio URL a un nuovo URL sullo stesso host:
# Redirect to a URL on the same domain or host
Redirect 301 "/old_url.html" "/new_url.html"
Load a custom 404 Error page
Per una migliore esperienza utente, carica una pagina di errore personalizzata quando uno qualsiasi dei link sul tuo sito web punta alla posizione sbagliata o il documento è stato eliminato.
Per creare una pagina 404 personalizzata, crea semplicemente una pagina web che funzionerà come una pagina 404 e poi aggiungi il seguente codice al tuo .htaccess
file:
ErrorDocument 404 /error/pagenotfound.html
Dovresti modificare /error/pagenotfound.html
alla posizione della tua pagina 404.
Forza l'uso di HTTPS invece di HTTP per il tuo sito web
Se vuoi forzare il tuo sito web a usare HTTPS, devi usare il RewriteEngine modulo nel .htaccess
file. Prima di tutto, devi attivare il RewriteEngine modulo nel .htaccess
file e quindi specificare le condizioni che si desidera controllare. Se tali condizioni sono soddisfatte, applichi le regole a tali condizioni.
Il seguente frammento di codice riscrive tutte le richieste su HTTPS:
# Turn on the rewrite engine
RewriteEngine On
# Force HTTPS and WWW
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.test-website.com/$1 [R=301,L]
Esaminiamo ogni riga.
RewriteEngine attivato attiva il RewriteEngine modulo. Questo è richiesto; in caso contrario, le condizioni e le regole non funzioneranno.
La prima condizione controlla se www
viene inserito. [OR, NC] sta per nessun caso , il che significa anche se l'URL inserito contiene un mix di lettere maiuscole o minuscole.
Successivamente, controlla se il protocollo HTTPS è già stato inserito dall'utente. %{https} di sconto significa che il protocollo HTTPS non è stato utilizzato.
Quando il RewriteCond è soddisfatto, utilizziamo RewriteRule per reindirizzare l'URL a HTTPS. Tieni presente che in questo caso, tutti gli URL verranno reindirizzati a HTTPS ogni volta che viene effettuata una richiesta.
[ Una guida gratuita di Red Hat:5 passaggi per automatizzare il tuo business. ]
Concludi
I proprietari di siti web utilizzano spesso il .htaccess
file per controllare il comportamento del loro sito web. In questo articolo abbiamo trattato le basi del .htaccess
file e alcuni casi d'uso comuni in atto sulla maggior parte dei siti Web.