Redirezione di un intero sito: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
 
Line 1: Line 1:
[[Category: Apache]]
[[Category: Apache]]
== Apache 1.3x ==
Per redirezionare un intero sito (ad esempio da un dominio <nowiki>http:www.miosito.com su https://www.miosito.com</nowiki>) si può utilizare la funzione ''[http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html Rewrite]'' di Apache.
Per redirezionare un intero sito (ad esempio da un dominio <nowiki>http:www.miosito.com su https://www.miosito.com</nowiki>) si può utilizare la funzione ''[http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html Rewrite]'' di Apache.


Line 23: Line 25:
Si riavvi apache:
Si riavvi apache:
  /etc/init.d/apache stop; /etc/init.d/apache start
  /etc/init.d/apache stop; /etc/init.d/apache start
==Apache 2.x==
Attenzione, in questo caso potrebbero esserci complicazioni date dalla diversa gestione del VirtualHost.
E' imperativo definire le regole di rewrite all'interno del virtualhost http (anche vuoto), e farle puntare a quello https:
* Definire il Virtual Host http, con le regole:
<pre>
NameVirtualHost*:80
<VirtualHost *:80>
        ServerAdmin webmaster@domain.tld
        ServerName extranet.galimberti.net
        RewriteEngine  on
        RewriteCond    %{SERVER_PORT} ^80$
        RewriteRule    ^/(.*) https://%{SERVER_NAME}/$1 [L,R]
        #RewriteLog      "/var/log/apache2/rewrite.log"
        #RewriteLogLevel 2
</VirtualHost>
</pre>
Questo invece è il VirtualHost https:
<pre>
NameVirtualHost *:443
<VirtualHost *:443>
        ServerAdmin webmaster@domain.tld
        ServerName extranet.galimberti.net
        SSLEngine On
        DocumentRoot /var/www/extranet.galimberti.net
        SSLCertificateFile /etc/apache2/ssl/extranet.galimberti.net.crt
</VirtualHost></pre>

Latest revision as of 16:22, 15 January 2007


Apache 1.3x

Per redirezionare un intero sito (ad esempio da un dominio http:www.miosito.com su https://www.miosito.com) si può utilizare la funzione Rewrite di Apache.

Nel caso specifico si abbia installati apache e apache-ssl, si può creare in apache il Virtual host da redirezionare con:

cat >> /etc/apache/conf.d/sito_da_redirezionare.conf <<'EOFile'
# Apache quando parte carica tutti i files.conf che trova in /etc/apache/conf.d/
<VirtualHost 192.168.0.9:80>
        ServerName extranet.galimberti.net
        # Definiamo questo virtual host, così la regola di redirezionevale solo per lui
        RewriteEngine On
        # Attiviamo mod_rewrite
        RewriteCond %{SERVER_PORT} !^443$
        # La regola di rewrite vale solo se la richiesta non avviene sulla porta 443 _E_
        RewriteCond %{HTTP_HOST} ^extranet.galimberti.net$
        # se il nome del sito richiesto è extranet.galimberti.net
        RewriteRule ^/.* https://extranet.galimberti.net [L,R]
        # Se c'è matching, rimanda il browser a questo indirizzo, riscrivendo l'indirizzo nell'addre bar.
</VirtualHost>
EOFile

Si riavvi apache:

/etc/init.d/apache stop; /etc/init.d/apache start

Apache 2.x

Attenzione, in questo caso potrebbero esserci complicazioni date dalla diversa gestione del VirtualHost. E' imperativo definire le regole di rewrite all'interno del virtualhost http (anche vuoto), e farle puntare a quello https:

  • Definire il Virtual Host http, con le regole:
NameVirtualHost*:80
<VirtualHost *:80>
        ServerAdmin webmaster@domain.tld
        ServerName extranet.galimberti.net
        RewriteEngine   on
        RewriteCond     %{SERVER_PORT} ^80$
        RewriteRule     ^/(.*) https://%{SERVER_NAME}/$1 [L,R]
        #RewriteLog      "/var/log/apache2/rewrite.log"
        #RewriteLogLevel 2
</VirtualHost>

Questo invece è il VirtualHost https:

NameVirtualHost *:443

<VirtualHost *:443>
        ServerAdmin webmaster@domain.tld
        ServerName extranet.galimberti.net
        SSLEngine On
        DocumentRoot /var/www/extranet.galimberti.net
        SSLCertificateFile /etc/apache2/ssl/extranet.galimberti.net.crt
</VirtualHost>