Hostwinds Tutorial
Cerca risultati per:
Sommario
Il file .htaccess è un file di configurazione utilizzato principalmente dai server Web Apache per controllare vari aspetti del comportamento del sito Web su base per direzione.Consente di sovrascrivere le impostazioni a livello di server e applicare configurazioni specifiche alle singole directory senza modificare direttamente il file di configurazione del server principale.
Il file .htaccess si distingue come uno strumento straordinariamente potente nella gestione in modo efficiente di vari compiti di siti Web di backend.Uno dei compiti più comuni è l'implementazione di reindirizzamenti, dove È possibile eseguire reindirizzamenti a livello di singoli URL, in interi domini e persino a livello di protocollo HTTP.
In questo tutorial, esamineremo la miriade di opzioni. Offerte per il reindirizzamento, guidandoti attraverso le varie implementazioni in modo da poter reindirizzare efficacemente i tuoi URL con fiducia.
Abilitazione del file .htaccess indica ai server Web Apache di riconoscere e accettare direttive scritte al suo interno, che ti imposterà per sovrascrivere le configurazioni del server predefinite a livello di directory.
Se hai un hosting condiviso Account, il tuo fornitore di servizi di hosting dovrebbe già averlo abilitato, quindi tutto ciò che devi fare è creare un file.
Utilizzando il tuo editor di testo preferito (useremo nano Per questo esempio), apri il file di configurazione del tuo sito Web con il seguente comando:
Per i sistemi a base di Red Hat (Centro, Fedora, Rhel):
sudo nano /etc/httpd/conf/httpd.conf
Per i sistemi basati su Debian (Debian, Ubuntu, Linux Mint):
sudo nano /etc/apache2/sites-available/domain_name.conf
Il blocco file VirtualHost sembrerà qualcosa del genere:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName domain_name
ServerAlias www.domain_name
DocumentRoot /var/www/domain_name/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Nota: A seconda di come sono organizzati i file del tuo sito Web, il 'DocumentRoot' può differire.Ci sono due configurazioni comuni:
/var/www/domain_name/
├── public_html/
│ ├── index.html
│ ├── about.html
│ └── .htaccess
└── logs/
/var/www/domain_name/
├── index.html
├── about.html
└── .htaccess
Sebbene entrambi siano validi, è importante essere consapevoli di quali file del sito potresti voler o meno essere influenzati dal file .htaccess.
All'interno del Virtualhost Blocco Aggiungi il seguente blocco di contenuti directory:
<VirtualHost *:80>
<Directory /var/www/domain_name/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Questa direttiva, in particolare 'Allontana tutto'È ciò che consente di applicare le direttive .htaccess su tutti i file del sito Web all'interno della directory indicata.
Dopo aver aggiunto il blocco della directory, salva e chiudi il file.In Nano, questo può essere fatto premendo Ctrl +X., poi Y e premendo ACCEDERE.
Per il completamento del file .htaccess, dovrai riavviare Apache:
Per i sistemi a base di Red Hat (Centro, Fedora, Rhel):
sudo systemct1 restart httpd
Per i sistemi basati su Debian (Debian, Ubuntu, Linux Mint):
sudo systemct1 restart apache2
Questo è tutto!Apache ora ti permetterà di utilizzare i file .htaccess all'interno della directory data.
Con il supporto per .htaccess abilitato, ora possiamo creare il file .htaccess.
Per creare il file .htaccess, è necessario andare al root directory dove hai abilitato il file .htaccess.Utilizzando il tuo editor di testo preferito (di nuovo, useremo nano) inserisci il seguente comando, sostituendo 'nome del dominio'Con il tuo nome di dominio.
Nota: Rimuovere 'public_html'Se non si è abilitato il file .htaccess in quella sottodirectory.
sudo nano /var/www/html/domain_name/public_html/.htaccess
Ora hai creato un file .htaccess e puoi iniziare a stabilire direttive di reindirizzamento.
Il 'Reindirizzare'La direttiva è l'opzione più semplice per i semplici reindirizzamenti da 1 a 1.Questa direttiva può essere utilizzata per reindirizzare gli URL sullo stesso dominio o su un dominio diverso.Le seguenti direttive funzionano per qualsiasi codice di stato 3xx (301, 302, 307 e 308)
Redirect 301 "/original_url_path" "/new_url_path"
Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"
Il 'Riswiterule'La direttiva consente di aggiungere ulteriori regole per i reindirizzamenti, come la corrispondenza dei pattern, attraverso l'uso di espressioni e condizioni regolari.
Per utilizzare il "riscrittura", dobbiamo assicurarci che il modulo "Mod_Rewrite" sia abilitato.
httpd -M | grep rewrite
apache2ctl -M | grep rewrite
Se si vede il seguente output, il modulo "mod_rewrite" è abilitato
rewrite_module (shared)
Passo 1: Apri il file di configurazione Apache (di solito 'httpd.conf' o 'apache2.conf')
sudo nano /etc/httpd/conf/httpd.conf
Passo 2: Assicurarsi che la seguente riga non venga commentata (no # all'inizio).Se lo è, elimina semplicemente '#'
LoadModule rewrite_module modules/mod_rewrite.so
Passaggio 3: Riavvia Apache per applicare le modifiche
sudo systemctl restart httpd
Passo 1: Abilita modulo 'mod_rewrite'
sudo a2enmod rewrite
Passo 2: Riavvia Apache per applicare le modifiche
sudo systemctl restart apache2
Se hai un modello comune nei tuoi vecchi URL, come la stessa sottodirectory (Ex. /Blog) puoi usare espressioni regolari per abbinarli e reindirizzarli:
RewriteEngine On
RewriteRule ^old-section/(.*)$ http://www.example.com/new-section/$1 [R=301,L]
In questo esempio, qualsiasi URL che inizia con 'vecchia sezione/' verrà reindirizzato a 'nuova sezione/' con lo stesso suffisso.
La seguente direttiva reindirizzerà tutto il traffico da "old-domain.com' A 'new-domain.com, 'preservando il percorso URI.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]
Quando "forza HTTPS", significa che stai reindirizzando qualsiasi richiesta HTTP in arrivo del tuo sito alla versione HTTPS protetta.
Esistono un paio di modi per forzare HTTPS usando la direttiva "riswiterule":
Quando si forza HTTPS su "tutto il traffico", stai dicendo al server di reindirizzare ogni richiesta HTTP in arrivo a HTTPS, indipendentemente dal dominio o sottodominio.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Questo metodo di HTTPS forzato è l'ideale per i server che ospitano un singolo dominio.
Quando si forza HTTPS su un dominio specifico, si dice al server di reindirizzare le richieste HTTP a HTTPS solo per quel particolare dominio (o sottodominio).
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?specific-domain\.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
La forzatura di HTTPS con questo metodo è particolarmente utile quando si ospita più domini su un singolo server e è necessario proteggere un numero selezionato.
È inoltre possibile utilizzare il file .htaccess insieme alla direttiva "riswiterule" per reindirizzare il prefisso www "www.
Per aggiungere prefisso "www":
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
Per rimuovere il prefisso 'www':
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
Scritto da Hostwinds Team / giugno 3, 2024