Adsense

viernes, 14 de noviembre de 2014

suprimir el index.php en un subdirectorio

Todos los libros tutoriales de algún framework como laravel nos ofrecen un ejemplo de .htaccess que remueve el feo index.php y nos deja direcciones/limpias/hermosas.

Sin embargo, cuando comienzas a desarrollar las pruebas en un subdirectorio el .htaccess ofrecido muchas veces no sirve para nada. Yo hasta hace poco me había rendido y hoy encontré un patrón del mismo que remueve el index.php



    Options +FollowSymLinks 
    RewriteEngine On
    RewriteBase /
    #esta directiva es importante
    RewriteCond $1 !^(index\.php|js|css|img) [NC]
    RewriteRule ^(.*)$ /directorio/subdirectorio/index.php/$1 [L]


La instruccion RewriteCond $1 !^(index\.php|js|css|img) [NC] me permite que los directorios donde esta mi javascript, css e imagenes (img) no se vean afectados.

Si nuestro sitio está en http://localhost/directorio/subdirectorio/ usamos la instrucción asi: RewriteRule ^(.*)$ /directorio/subdirectorio/index.php/$1 [L]

La opcion Options +FollowSymLinks permite al servidor seguir directorios simbólicos

Actualización:  el .htaccess que trae laravel me ha funcionado bien cambiando solo la directiva del index.php

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ /sub/carpetas/index.php [L]

No hay comentarios: