Configurando Virtual Hosts
Hospedagem virtual é um método que os servidores web utilizam para hospedar mais de um nome de domínio em um mesmo computador, algumas vezes no mesmo endereço IP.
Abra o aquivo httpd-vhosts.conf e realize as seguintes configurações, supondo que seu email seja fulano@dominio01.com e seu site seja www.dominio01.com, conforme mostrado a seguir:
$ sudo nano /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin fulano@seudominio.com
DocumentRoot "/usr/local/apache2/htdocs/pastadosite01"
ServerName dominio01.com
ServerAlias www.dominio01.com
ErrorLog "logs/dominio01-error_log"
CustomLog "logs/dominio01-access_log" common
<Directory "/usr/local/apache2/htdocs/pastadosite01">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
# Redirect www to non-www and force https
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
# RewriteCond %{REQUEST_URI} !=/server-status
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
# End Redirect www to non-www and force https
</VirtualHost>
O servidor Apache pode gerenciar vários sites ao mesmo tempo, cada um com seu próprio domínio. Nesse caso, é necessário configurar um virtual host para cada site. O conteúdo de cada site (páginas html, arquivos CSS e Javascript) devem estar dentro de sua respectiva pasta (/pastadosite01, /pastadosite02, etc). O caminho para o conteúdo de cada site precisa estar devidamente configurado em seu respectivo virtual host, na diretiva DocumentRoot.
Por exemplo, para implementar um novo site www.dominio02.com, cujo email do adminstrador é administrador@dominio02.com é necessário configurar mais um virtual host no aquivo httpd-vhosts.conf. Assim, o arquivo httpd-vhosts.conf passaria a conter a seguinte configuração:
<VirtualHost *:80>
ServerAdmin fulano@dominio01.com
DocumentRoot "/usr/local/apache2/htdocs/pastadosite01"
ServerName dominio01.com
ServerAlias www.dominio01.com
ErrorLog "logs/dominio01-error_log"
CustomLog "logs/dominio01-access_log" common
<Directory "/usr/local/apache2/htdocs/pastadosite01">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
# Redirect www to non-www and force https
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
# RewriteCond %{REQUEST_URI} !=/server-status
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
# End Redirect www to non-www and force https
</VirtualHost>
<VirtualHost *:80>
ServerAdmin administrador@dominio02.com
DocumentRoot "/usr/local/apache2/htdocs/pastadosite02"
ServerName dominio02.com
ServerAlias www.dominio02.com
ErrorLog "logs/dominio02-error_log"
CustomLog "logs/dominio02-access_log" common
<Directory "/usr/local/apache2/htdocs/pastadosite02">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
# Redirect www to non-www and force https
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
# RewriteCond %{REQUEST_URI} !=/server-status
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
# End Redirect www to non-www and force https
</VirtualHost>