GNU/Linux >> Linux Esercitazione >  >> Linux

Una guida per principianti alla creazione di reindirizzamenti in un file .htaccess

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 sezione nei file di configurazione del server principale o dell'host virtuale.

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.


Linux
  1. Guida di Ansible:gestisci i file utilizzando Ansible

  2. Filtraggio di tcpdump:creare ordine dal caos

  3. Una guida per principianti al firewalld in Linux

  4. Una guida per principianti a gawk

  5. Creazione di reindirizzamenti Apache

Una guida per principianti alla risoluzione dei problemi di rete in Linux

Guida per principianti all'installazione di Pop!_OS Linux

Come utilizzare AppImage su Linux (Guida per principianti)

Creazione di un file scaricabile in cPanel

Guida per principianti ai Syslog in Linux

Che cos'è il file system Linux? Guida facile