Un subdominio puede ser de mucha utilidad a la hora de facilitar el acceso a una sección de nuestra web a los usuarios. El único problema es que es necesario por lo general crear otra página con su contenido propio y configurar unas cuantas cosas en ella si utilizamos un sistema CMS. Con estas instrucciones aprenderás a redireccionar tu subdominio a una carpeta o subcarpeta desde el archivo htaccess de apache.
Como habilitar htaccess en apache
Por supuesto lo primero que tienes que tener es habilitado el uso de .htaccess en tu servidor. En caso de no tenerlo será tan simple como entrar en el archivo de configuración de apache, que normalmente (en centos) se encuentra en
/etc/httpd/conf/httpd.conf
Lo editaremos y buscaremos la parte donde se indica AllowOverride None para nuestro host. Simplemente tendremos que cambiarla por All y reiniciar apache
AllowOverride All service httpd restart
De esta forma estaremos habilitando el uso de htaccess en apache para que no tengamos problemas más adelante.
Como hacer una redirección de un subdominio a una carpeta desde htaccess
Ahora sí ya nos metemos en materia. Simplemente tendremos que editar nuestro archivo .htaccess, que si no existe crearemos en la carpeta root de nuestro sitio. Supongamos que nuestra carpeta principal donde está todo el contenido es /var/www/vhosts/mipagina.com/httpdocs. Accederemos a ella y crearemos el archivo (o deditaremos) .htaccess
cd /var/www/vhosts/mipagina.com/httpdocs nano .htaccess
Ahora que ya lo tenemos abierto vamos a suponer que está vacío, por lo que su contenido debería quedar así:
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} subdominio.mipagina.com [NC] RewriteRule ^(.*)$ [L,NC,QSA]
Explico todos los puntos de lo que vemos en el código anterior
- La primera y segunda línea (Options y RewriteEngine) sirven para habilitar la reescritura de urls.
- La siguiente línea RewriteCond creará una condición, lo que significa que siempre que la url llamada coincida con subdominio.mipagina.com se cumplirá y ejecutará la regla siguiente, sino simplemente la omitirá. [NC] sirve para que no distinga entre mayúsculas y minúsculas y los . sirven para escapar el punto ya que es un caracter especial de los rewrites.
- La última línea RewriteRule va a recoger cualquier contenido que enviemos contra ese subdominio con (.*), es decir, que si entramos a subdominio.mipagina.com/algomas, se guardará como variable la parte algomas y la incluiremos después. La siguiente parte es el destino , la subcarpeta a la que lo queremos enviar. El $1 sirve para colocar la variable que hemos dicho antes, por tanto al cargar el subdominio que he comentado lo redirigiría a algomas, por lo que podríamos entrar a cualqueir subcarpeta y archivo que se haya escrito en el navegador de forma automática. Por último [L,NC,QSA] significa:
- L = Última acción (si coincide y se redirecciona no sigue buscando más reglas, no hace falta)
- NC = No Case Sensitive, no distingue entre mayúsculas y minúsculas
- QSA = Recoge todas las variables query que podamos enviar, es decir, si mandamos ?var=algo, nos enviará también esto a la nueva dirección.
Así de simple resulta redirigir subdominios a carpetas. También podemos poner una url remota como nuestra página de facebook http://facebook.vichaunter.org por ejemplo.
Espero os sea de utilidad.