Este artículo explica cómo configurar Apache para que todos los pedidos sean redireccionados a un mismo dominio, "http://ejemplo.com".
Primero es necesario habilitar el módulo Rewrite (mod_rewrite
). En Debian y derivados, ejecutar:
root@debian:/etc/apache2# a2enmod rewrite
Luego editar el archivo de configuración del VirtualHost por defecto /etc/apache2/sites-available/default
, donde se reciben pedidos para cualquier dominio (no configurado en otro VirtualHost). Debe tener el siguiente contenido:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName ejemplo.com DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # Redireccionar todos los pedidos al dominio "ejemplo.com" RewriteEngine on RewriteCond %{HTTP_HOST} !^ejemplo\.com [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/?(.*) http://ejemplo.com/ [L,R,NE] </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Las líneas de configuración que implementan la redirección son las siguientes:
RewriteEngine on RewriteCond %{HTTP_HOST} !^ejemplo\.com [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/?(.*) http://ejemplo.com/ [L,R,NE]
RewriteEngine on
habilita el módulo de reescritura. Luego si el dominio en la URL recibida no es "ejemplo.com" (RewriteCond %{HTTP_HOST} !^ejemplo\.com [NC]
), y la URL no es vacía (RewriteCond %{HTTP_HOST} !^$
), redirecciona (reescribe la URL) al dominio "ejemplo.com" (RewriteRule ^/?(.*) http://ejemplo.com/ [L,R,NE]
).
De esta forma, cualquier pedido serán redireccionado a "ejemplo.com". Por ejemplo, si se recibe la URL "facebook.com", será reescrita a "ejemplo.com".
Fuente: linuxito