Configurar varios dominios en Apache

Antes de configurar Apache, se debe crear un registro CNAME en la configuración DNS:

www.dominio.cl. 1800 IN CNAME dominio.cl.
En Ubuntu, Apache se encuentra en /etc/apache2/. Los sitios habilitados están configurados como VirtualHost en los archivos dentro de sites-enabled, que en realidad son links simbólicos que apuntan a archivos conf en sites-available.

No es necesario modificar el 000default.conf, así que creamos un nuevo archivo conf con lo siguiente:

sitio1.conf

<VirtualHost *:80>
ServerName dominio.cl
ServerAlias www.dominio.cl
DocumentRoot "/var/www/html/dominio.cl"
<Directory "/var/www/html/dominio.cl">
allow from all
Options None
Options Indexes FollowSymLinks
Require all granted
</Directory>
</VirtualHost>

La línea ServerAlias se agregó para permitir que la url funcione con o sin www. La otra parte de esto debe hacerse en el .htaccess, donde dirigimos dejamos una de las 2 url como principal y la otra que redirija a la principal. En este caso, la principal es sin la www.

.htaccess (en la carpeta raíz del sitio)

RewriteEngine On

RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

En cambio, para redirigir sin www a con www:

RewriteCond %{HTTP_HOST} ^(?!www\.)(.+) [NC] 
RewriteRule ^(.*) http://www.%1/$1 [R=301,NE,L]

Comentarios

Entradas populares de este blog

Div con autorefresh en jQuery

Crear clave foránea en MySQL