Htaccess redirect a un localhost su una determinata porta via apache2 mod_rewrite.

Questo snippet di htaccess configura una regola di rewrite per il modulo mod_rewrite di Apache.

<IfModule mod_rewrite.c>
    RewriteEngine On
    #Domain REDIRECT
    RewriteCond %{HTTP_HOST} !^127\.0\.0\.1:3000$ [NC]
    RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [L,R=301]
</IfModule>

In pratica, se il modulo mod_rewrite è attivo (verificato con l’istruzione <IfModule mod_rewrite.c>), la regola specifica RewriteEngine On abilita il rewriting degli URL.

La successiva istruzione RewriteCond verifica se l’host nella richiesta HTTP non corrisponde a “127.0.0.1:3000” (cioè non sta puntando al server locale sulla porta 3000). Se la condizione è vera, viene applicata la regola di rewrite successiva.

La regola di rewrite RewriteRule prende tutto ciò che segue il dominio nella richiesta e lo redirige verso “http://127.0.0.1:3000/$1“, dove “$1” rappresenta il valore catturato tra parentesi nella parte corrispondente dell’URL richiesto. L’opzione [L,R=301] indica che si tratta di una redirezione permanente (codice HTTP 301) e che non devono essere processate ulteriori regole di rewriting.

In sintesi, questo snippet di htaccess redirige tutte le richieste in arrivo a un server locale sulla porta 3000, a meno che non siano già indirizzate a tale indirizzo.

Tieni presente che la correttezza dell’implementazione dipende dalle tue esigenze specifiche e dall’ambiente di hosting in cui viene utilizzato. È consigliabile testare attentamente il funzionamento dell’htaccess e adattarlo alle tue necessità.

Versioni di PHP diverse per ciascun virtualhost

Come fare per ottenere di PHP-fpm diverse per siti diversi, sulla stessa macchina Ubuntu 18 o Ubuntu 20?

Premesse

In passato apache2 e PHP venivano installati con il gestore di pacchetti di Ubuntu (apt) o con altri sistemi e per fare in modo che un certo virtualhost di apache2 potesse girare con una versione di PHP differente da quella usata dalla cli, ovvero da riga di comando.

Leggi tutto “Versioni di PHP diverse per ciascun virtualhost”