Redirezione di un intero sito: Difference between revisions
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>