Pregunta:
Tengo un servidor dedicado con Apache, en el que configuré algunos VirtualHosts. He configurado uno para manejar el dominio www y el dominio que no es www.
Mi archivo VH .conf para www:
<VirtualHost *>
DocumentRoot /var/www/site
ServerName www.example.com
<Directory "/var/www/site">
allow from all
</Directory>
</VirtualHost>
Con este .htaccess
:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
¿Existe una forma sencilla de redirigir www a la versión sin www? Actualmente estoy enviando ambas versiones al mismo DocumentRoot
y usando .htaccess
pero estoy seguro de que debo poder hacerlo en el archivo VirtualHost.
Respuesta:
Resulta que las reglas mod_rewrite
están bien en el archivo VirtualHosts, aparte de la regla RewriteBase
. Terminé con esto:
<VirtualHost *>
ServerName www.example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteRule ^/(.*)$ http://example.com/$1 [L,R=301]
</VirtualHost>
EDITAR: siguiendo el consejo de joschi en los comentarios, ahora estoy usando esta versión simplificada usando la directiva Redirect
de mod_alias
:
<VirtualHost *>
ServerName www.example.com
Redirect 301 / http://example.com/
</VirtualHost>