# No listar directorios
IndexIgnore *
Options +FollowSymlinks
Options -Indexes
# Mod_rewrite en uso.
RewriteEngine On
RewriteBase /
# Bloquee cualquier script tratando de base64_encode datos dentro de la URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*([^)]*) [OR]
# Bloquee cualquier secuencia de comandos que incluye una etiqueta <script> en la URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Bloquee cualquier script tratando de establecer una variable PHP GLOBALS vía URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
# Bloquee cualquier script intentar modificar una variable _REQUEST vía URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
# Retorno 403 encabezado Prohibida y mostrar el contenido de la página principal de la raíz
RewriteRule .* index.php [F]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Si la ruta solicitada y el archivo no es /index.php y la solicitud no se ha reescrito internamente al script index.php
RewriteCond %{REQUEST_URI} !^/index.php
# La ruta solicitada y el archivo no coincide directamente un archivo físico
RewriteCond %{REQUEST_FILENAME} !-f
# La ruta solicitada y el archivo no coincide directamente una carpeta física
RewriteCond %{REQUEST_FILENAME} !-d
# Reescribir internamente la solicitud al script index.php
#RewriteRule .* index.php [L]
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteRule ^(.*)/administrator/(.*)/?$ administrator/index.php?c=404 [L]