En un post anterior, vimos como quitar el «app.php/app_dev.php» de la URL, pero, que sucede si queremos que nuestras URL se vean aun mas limpias, por ejemplo, si tenemos una URL www.hola.com/web/home/ idealmente lo mejor seria que mostrase solo www.hola.com/home/ cierto? ¡pues claro! a nuestros Usuarios no les parecera muy lindo que se vea «web» en nuestra URL.
Buscando y probando luego de algunas semanas, encontre este post en un foro que cuando puedo ayudo, pero eso es otro tema, donde hacian mencion a este mismo problema, asi que deci probarlo y vaya… funciono sin ningun problema, el codigo es el siguiente:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^(.*)$ /proyecto/web/$1 [QSA,L] </IfModule>
Algunas observaciones que se deben mencionar:
– Este codigo debe estar en un archivo llamado .htaccess y debes dejarlo en la RAIZ de tu carpeta publica, es decir, en tu Hosting tienes
Este archivo debera ir dentro de la carpeta public_html. Si existe ya este archivo te recomiendo respaldar el existente, asi en caso de error o algun problema podras volver atras mas facilmente.
– La carpeta proyecto hace referencia a la carpeta en donde este tu proyecto obviamente, si por ejemplo en la raiz de tu Hosting tienes una carpeta llamada symfony y dentro de esta tienes todos tus archivos deberas colocar ahi /symfony/web si no lo tienes en ninguna carpeta y esta todo en al raiz del Hosting, simplemente deberas colocar /web/
– Si tienes un Hosting en donde tienes varios dominios incorporados deberas tener mucho cuidado, ya que lo mas probable es que al utilizar este codigo afectes a todos los otros sitios y todos intenten redireccionar a la ruta que indicaste o mostraran error de Servidor excepto obviamente el sitio original para el cual se hizo este cambio. Asi que si tienes un Hosting exclusivo para esa web, no tendras ningun problema al incorporar este codigo.
Hosting con Dominios Adicionales (Actualizo Info)
Para el caso de un Hosting en donde puedes adicionar varios dominios, tambien podrias incluir esto, me explico, si tengo por ejemplo algo como esto
– arielnavarrete.com (dominio principal)
– hola.com (dominio adicional)
– blog.com (dominio adicional)
Los dominios hola.com y blog.com se encuentra en una carpeta dentro de la carpeta public_html, por ejemplo
– hola.com -> public_html/hola.com/
– blog.com -> public_html/blog.com/
Entonces lo que podemos hacer es crear nuestro archivo .htaccess con esta ruta
RewriteBase / RewriteRule ^(.*)$ /web/$1 [QSA,L]
Lo demas quedaria igual, y dejamos cada uno en las carpetas donde deseamos tenerlo, en este caso lo copiamos a estas rutas
– public_html/hola.com/
– public_html/blog.com/
Asi al ingresar a la URL hola.com mostrara directamente esta y no hola.com/web/ como lo hacia en un principio.
Obviamente estas URL son solo de ejemplo
Saludos