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:

Publicar un comentario

Comentar es bueno siempre que el comentario sea apropiado