Hostwinds Tutorial

Cerca risultati per:


Sommario


Qual è il file .htaccess?
Abilitazione del file .htaccess
Passaggio 1: aprire il file host virtuale
Passaggio 2: Aggiungi direttiva "Autoverride All"
Passaggio 3: salva il file
Passaggio 4: riavvia Apache
Creazione di un file .htaccess
Reindirizzamento di un singolo URL usando la direttiva "reindirizzamento"
Se vuoi reindirizzare un URL a un altro URL sullo stesso dominio:
Se vuoi reindirizzare un URL a uno su un dominio diverso:
Reindirizzamento dell'URL di massa utilizzando la direttiva "riscrittura"
Controlla se 'mod_rewrite è abilitato
Per i sistemi a base di Red Hat (Centro, Fedora, Rhel):
Per i sistemi basati su Debian (Ubuntu, Debian, Linux Mint):
Come abilitare 'mod_rewrite'
Per i sistemi a base di Red Hat (Centro, Fedora, Rhel):
Per i sistemi basati su Debian (Ubuntu, Debian, Linux Mint):
Reindirizzamento degli URL basati su un modello comune
Reindirizzando un intero dominio in un nuovo dominio
Forzare https con direttiva "riscrittura"
Forzare HTTPS su tutto il traffico
Forzare HTTPS su un dominio specifico
Aggiunta e rimozione del prefisso "www"

Come creare reindirizzamenti usando il file .htaccess

Qual è il file .htaccess?
Abilitazione del file .htaccess
Passaggio 1: aprire il file host virtuale
Passaggio 2: Aggiungi direttiva "Autoverride All"
Passaggio 3: salva il file
Passaggio 4: riavvia Apache
Creazione di un file .htaccess
Reindirizzamento di un singolo URL usando la direttiva "reindirizzamento"
Se vuoi reindirizzare un URL a un altro URL sullo stesso dominio:
Se vuoi reindirizzare un URL a uno su un dominio diverso:
Reindirizzamento dell'URL di massa utilizzando la direttiva "riscrittura"
Controlla se 'mod_rewrite è abilitato
Per i sistemi a base di Red Hat (Centro, Fedora, Rhel):
Per i sistemi basati su Debian (Ubuntu, Debian, Linux Mint):
Come abilitare 'mod_rewrite'
Per i sistemi a base di Red Hat (Centro, Fedora, Rhel):
Per i sistemi basati su Debian (Ubuntu, Debian, Linux Mint):
Reindirizzamento degli URL basati su un modello comune
Reindirizzando un intero dominio in un nuovo dominio
Forzare https con direttiva "riscrittura"
Forzare HTTPS su tutto il traffico
Forzare HTTPS su un dominio specifico
Aggiunta e rimozione del prefisso "www"

Qual è il file .htaccess?

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

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.

Passaggio 1: aprire il file host virtuale

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' (sopra) indica che i file del tuo sito Web sono in una sottodirectory chiamata 'public_html ' All'interno del 'nome del dominio'Directory, una struttura comunemente usata per separare i file rivolti al pubblico da altri file relativi al sito.Abilitare il file .htaccess in questa directory influenzerà i file solo all'interno di "public_html".
  • Esempio:
/var/www/domain_name/
├── public_html/
│   ├── index.html
│   ├── about.html
│   └── .htaccess
└── logs/
  • '/var/www/domain_name' indica che tutti i file del tuo sito Web si trovano direttamente nel 'nome del dominiodirectory.Questa configurazione significa che tutte le direttive del file .htaccess si applicheranno ad ogni file (rivolto a pubblico o meno) all'interno di questa directory.
  • Esempio:
/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.

Passaggio 2: Aggiungi direttiva "Autoverride All"

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.

Passaggio 3: salva il file

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.

Passaggio 4: riavvia Apache

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.

Creazione di un file .htaccess

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.

Reindirizzamento di un singolo URL usando la direttiva "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)

Se vuoi reindirizzare un URL a un altro URL sullo stesso dominio:

Redirect 301 "/original_url_path" "/new_url_path"

Se vuoi reindirizzare un URL a uno su un dominio diverso:


Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"

Reindirizzamento dell'URL di massa utilizzando la direttiva "riscrittura"

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.

Controlla se 'mod_rewrite è abilitato

Per utilizzare il "riscrittura", dobbiamo assicurarci che il modulo "Mod_Rewrite" sia abilitato.

Per i sistemi a base di Red Hat (Centro, Fedora, Rhel):
httpd -M | grep rewrite
Per i sistemi basati su Debian (Ubuntu, Debian, Linux Mint):
apache2ctl -M | grep rewrite

Se si vede il seguente output, il modulo "mod_rewrite" è abilitato

rewrite_module (shared)

Come abilitare 'mod_rewrite'

Per i sistemi a base di Red Hat (Centro, Fedora, Rhel):

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
Per i sistemi basati su Debian (Ubuntu, Debian, Linux Mint):

Passo 1: Abilita modulo 'mod_rewrite'

sudo a2enmod rewrite

Passo 2: Riavvia Apache per applicare le modifiche

sudo systemctl restart apache2

Reindirizzamento degli URL basati su un modello comune

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.

Reindirizzando un intero dominio in un nuovo dominio

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]

Forzare https con direttiva "riscrittura"

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":

Forzare HTTPS su tutto il traffico

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.

Forzare HTTPS su un dominio specifico

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.

Aggiunta e rimozione del prefisso "www"

È 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