Cuando trabajamos con un servidor web como Apache, es muy común que al abrir la URL de una carpeta que no contiene un archivo index.php
o index.html
, este nos muestre un listado genérico de directorios y archivos llamado Apache list files.
Este listado cumple su función básica, pero luce muy simple y anticuado. Si queremos algo más profesional, más amigable para el usuario, podemos mejorar la experiencia utilizando una poderosa directiva de Apache llamada FallbackResource.


¿Qué es FallbackResource?
FallbackResource
es una directiva de Apache que permite redirigir todas las solicitudes que no coincidan con un archivo o carpeta existente hacia un archivo PHP que definamos.
Esto significa que, si alguien accede a una carpeta sin index.php
o index.html
, en lugar de mostrar el listado genérico de Apache, la petición será manejada por un archivo central (por ejemplo globalindex.php
) que nosotros controlamos, permitiéndonos dar un diseño mucho más atractivo.
Configuración en el sitio principal
Si tienes control total sobre tu servidor Apache, puedes activar esta funcionalidad de la siguiente forma:
Edita la configuración principal del VirtualHost por defecto:
sudo nano /etc/apache2/sites-available/000-default.conf
Dentro de la sección <Directory /var/www/html>
agrega lo siguiente:
<Directory /var/www/html>
Options -Indexes
DirectoryIndex index.php index.html
FallbackResource /globalindex.php
</Directory>
Con esto desactivamos el listado de Apache (-Indexes
) y en su lugar redirigimos todas las carpetas sin index
hacia globalindex.php
.
Aplica los cambios:
sudo systemctl reload apache2
¡Y listo! Ahora cualquier carpeta sin index.php
usará automáticamente tu globalindex.php
.
Configuración en subdominios
Lo interesante de este método es que también se puede aplicar en subdominios, cada uno con sus propias carpetas, pero compartiendo el mismo globalindex.php
.
Paso 1: Crear la carpeta del subdominio (en este ejemplo crearemos el sub-dominio HUB pero tu puedes crear otro)
cd /var/www/html
sudo mkdir hub
sudo chown -R www-data:www-data /var/www/html/hub/
sudo chmod -R 755 /var/www/html/hub/
Paso 2: Crear el archivo de configuración del subdominio
sudo nano /etc/apache2/sites-available/hub.miweb.net.conf
Y agrega lo siguiente:
<VirtualHost *:80>
ServerName hub.miweb.net
DocumentRoot /var/www/html/hub
<Directory /var/www/html/hub>
Options -Indexes
DirectoryIndex index.php index.html
FallbackResource /globalindex.php
</Directory>
# Alias para que /globalindex.php apunte al archivo fuera de la carpeta hub
Alias /globalindex.php /var/www/html/globalindex.php
<Files "/var/www/html/globalindex.php">
Require all granted
</Files>
ErrorLog ${APACHE_LOG_DIR}/hub-error.log
CustomLog ${APACHE_LOG_DIR}/hub-access.log combined
</VirtualHost>
Paso 3: Activar el subdominio
sudo a2ensite hub.miweb.net
sudo systemctl reload apache2
Con esto, el subdominio hub.miweb.net ya está activo en el server, y si no encuentra un index.php
, mostrará el contenido de globalindex.php
.
Solo te falta configurar tu subdominio en el administrador de dominios agregar un record (A)
A / hub / IP-de-tu-web-server
y con eso ya deberia funcionar tu subdominio correctamente
Si no tienes acceso al Apache la alternativa seria usar .htaccess
Si no tienes acceso a la configuración de tu web server y solo tienes un hosting, tienes una opcion mas para poder usar nuestro visor de archivos con contraseña. En tu hosting en donde deseas que se cargue el visor que archivos y carpetas, tendras que crearle una carpeta especial para este para el ejemplo le llamaremos carpeta /fallback/
Y crearemos el archivo .htaccess el cual pondremos el siguiente contenido: (en el codigo recuerda cambiar la RewriteBase /fallback/ y RewriteCond %{REQUEST_URI} !^/fallback/globalindex\.php$ donde dice /fallback/ y poner el nombre de tu carpeta donde tendras instalado este sistema.
Options -Indexes
DirectoryIndex globalindex.php
RewriteEngine On
RewriteBase /fallback/
# No redirigir el propio globalindex.php
RewriteCond %{REQUEST_URI} !^/fallback/globalindex\.php$
# Redirigir si NO existe archivo
RewriteCond %{REQUEST_FILENAME} !-f
# Redirigir siempre, incluso si es un directorio vacío
RewriteRule ^(.*)$ globalindex.php?url=$1 [QSA,L]
y ahora solo agregas el archivo globalindex.php en esa carpeta y ya deberia funcionar sin problema, te recuerdo todo lo grabes en esta carpeta ya sea archivos de texto imagenes y carpetas sera visualizados por globalindex.php son colo abrir su tuhosting/ruta/ si quieres cambiar algunas caracteristicas puedes editar la zona de configuracion de globalindex.php asi podras asignarle una contraseña propia o dejarla libre sin contraseña.
Nuestro globalindex.php
personalizado
La clave de esta configuración está en el archivo globalindex.php
, que puede mostrar los archivos y carpetas de manera estilizada: con tablas redondeadas, colores modernos e incluso protección por contraseña para mayor seguridad.
Puedes descargar nuestro GLOBALINDEX aqui:
https://github.com/zidrave/filemanager_1filephp/blob/main/core/globalindex.php
Características Actuales:
- Contraseña simple y avanzada ( opcional )
- Portada personalizable con readme.md al estilo github.
- Visor de Archivos de Texto y archivos de imagen en tiempo real.
- Themes seleccionables (Varios).
- Puedes tener la pagina principal y carpetas sin clave pero con un plugin simple puedes poner contraseña a algunas carpetas individuales, facilmente creas una carpeta y agregas un archivo llamado «gi-security.php», con el siguiente contenido:
<?php
//PLUGIN DE SEGURIDAD EXTRA PARA DIFERENTE CARPETA //////
// archivo gi-security.php , donde pongas esto si pedira clave!
//y puede ser una clave diferente por carpeta pero con que
//logees alguna de las carpetas ya entrara a las demas
//carpetas con contraseña asi que precaucion.
// 1 = pedirá contraseña, 0 = acceso libre
$versinclave = 1;
// 0 = clave simple, 1 = clave avanzada con hash (En esta opcion tienes q crear tu hash ejem: $2y$12$RcgZxApBg/cXAcpXcaZ0QuUf3hBjmcl4bZ....)
$passwordadvance = 1;
// Modo básico (clave visible)
$password = "1111";
// Modo avanzado (clave hasheada con bcrypt)
$password_hashed = '$2y$12$RcgZxApBg/cXAcpXcaZ0QuUf3hBjmcl4bZbonIQvWLyK4.0E0hjrO';
/////////////////////////////////////////////////////////
?>
y con ese simple cambio aunque tu globalindex.php lo tengas configurado para que no pida password en las carpetas que pongas este archivo si pedira password.
Este archivo lo puedes mejorar con el tiempo, agregando:
- Contador de elementos encontrados.
- Buscador dentro de la carpeta. (Aun nos falta esto)
- Íconos para archivos y carpetas.
- Responsive design (adaptado a móviles).
- Contraseña para acceder a las carpetas.
- MODO solo con password y modo publico (no pedira password, se configura en el mismo archivo)
- Se agregaron mas themes.
Muchas de esas características ya le agrege al globalindex que esta publicado en mi Github, tambien tiene themes y contraseña.

Con esta herramienta no solo mejoras la estética, sino también la seguridad y la experiencia de usuario al navegar por las carpetas de tu servidor o Web para compartir archivos.
✅ Ahora tu servidor Apache y tus subdominios tendrán un listado de carpetas moderno, seguro y personalizable, todo gestionado desde un solo archivo globalindex.php
.