Post actualizado el día octubre 13, 2026 by DeiviSanzPlay
Si te sale el error 404 en XAMPP cuando intentas abrir tu proyecto en localhost, respira. No es un fallo aleatorio ni un bug del servidor: el 99% de las veces es algo concreto que tú mismo has tocado. Y se arregla rápido si sabes dónde mirar.
Te lo cuento desde la barra del bar, sin rodeos, con los fallos que veo cada semana en foros y en proyectos de gente que empieza con XAMPP en Windows.
Qué significa realmente un error 404 en XAMPP
Apache te está diciendo una cosa muy simple: «he recibido tu petición, pero en la carpeta que tengo asignada como raíz no existe ese archivo». No es un fallo de PHP ni de MySQL. Es un problema de rutas, de nombre de archivo o de configuración de directorios.
El error 404 en XAMPP aparece casi siempre cuando la URL que escribes en el navegador no coincide exactamente con la ruta física del archivo dentro de htdocs. Apache no adivina, no busca por tí, no hace magia.
Por eso lo primero que tienes que hacer es abrir el explorador de archivos y comprobar que la carpeta de tu proyecto está donde crees que está. La ruta por defecto en Windows es C:xampphtdocs. Si has instalado XAMPP en otra unidad o carpeta, esa es tu raíz, no otra.
Los 3 fallos que provocan el 90% de los errores 404 en XAMPP
Antes de tocar configuraciones raras, revisa esto. Es aburrido pero es donde está el problema:
- Nombre del archivo distinto: tu archivo se llama index.php y tú escribes Index.php. En Windows no importa, pero en Apache sí. Ojo con mayúsculas y extensiones.
- Carpeta mal ubicada: tienes el proyecto en el escritorio o en Documentos y crees que está en htdocs. Muévelo.
- URL mal escrita: escribes localhost/miproyecto cuando la carpeta real se llama mi-proyecto. El guion se lo comes.
Si después de esto sigue el error 404 en XAMPP al cargar sitios locales, entonces sí, vamos a los archivos de configuración.
Revisa el .htaccess: el sospechoso habitual
El archivo .htaccess es el que más dolores de cabeza da. Está pensado para reescribir URLs, pero si tiene una regla mal escrita, Apache se lía y devuelve 404 a todo lo que pidas.
Prueba rápida: renómbralo a .htaccess.bak y recarga la página. Si ahora funciona, el problema está ahí. Lo más común es una directiva RewriteRule mal apuntada o un RewriteBase que no corresponde con la carpeta real de tu proyecto.
Si tienes WordPress en local, el .htaccess suele venir con reglas pensadas para el hosting, no para tu XAMPP. Bórralas o coméntalas y prueba.
Cuando lo toques, haz copia antes. Esto no es una recomendación de manual, es que si la lías no vas a saber qué había originalmente.
Apache no lee bien tu proyecto: permisos y mod_rewrite
En Windows los permisos casi nunca son el problema, pero si trabajas con XAMPP en una carpeta sincronizada o en una unidad de red, sí. Apache necesita poder leer los archivos. Si no puede, el resultado es un error 404 en XAMPP aunque el archivo esté ahí.
Otro clásico: el módulo mod_rewrite desactivado. Si tu aplicación usa URLs amigables y ese módulo está en off, Apache no sabe reescribir y devuelve 404. Abre httpd.conf y asegúrate de que la línea LoadModule rewrite_module modules/mod_rewrite.so no tiene un # delante.
Y revisa que el bloque <Directory «C:/xampp/htdocs»> tenga AllowOverride All. Si tiene None, el .htaccess se ignora por completo y cualquier regla que metas no sirve para nada.
Conflictos de puertos: por qué localhost no te muestra nada
Si Apache no arranca o arranca pero no responde, el problema puede ser de puertos. El 80 y el 443 los ocupan Skype, IIS, VMware o incluso algunos antivirus. Cuando eso pasa, XAMPP te da errores raros y a veces 404 en lugar de un aviso claro.
Solución directa: cambia el puerto de Apache. Edita httpd.conf y busca Listen 80. Cámbialo por Listen 8080. Luego accede con http://localhost:8080/tuproyecto. Recuerda cambiar también ServerName localhost:80 a ServerName localhost:8080.
Si haces esto, no olvides actualizar la URL de tu proyecto. Mucha gente cambia el puerto y sigue escribiendo localhost a secas. Ahí tienes el 404 otra vez.
Reinicia servicios y comprueba que Apache está vivo
Parece una tontería pero funciona más veces de las que crees. Abre el panel de control de XAMPP, para Apache y MySQL, y vuelve a arrancarlos. A veces los cambios en httpd.conf o en php.ini no se aplican hasta que reinicias.
Si Apache no arranca, el error 404 en XAMPP no es tal: es que no hay servidor escuchando. Mira el log en xampp/apache/logs/error.log. Ahí te dice exactamente qué está fallando.
Revisar el log es lo que separa a alguien que resuelve el problema en 5 minutos de alguien que reinstala XAMPP sin necesidad. El log te da la línea y el motivo. No lo ignores.
Cuándo reinstalar XAMPP (y cuándo no)
Reinstalar XAMPP es la última opción y casi nunca es la buena. Solo tiene sentido si el propio Apache está corrupto, algo raro salvo que hayas tocado archivos del sistema o tengas el disco con errores.
Antes de eso, prueba a crear un archivo info.php con <?php phpinfo(); ?> en htdocs. Si lo abres en localhost/info.php y funciona, Apache y PHP están bien. El problema es tu proyecto, no XAMPP.
Ese test es el que te ahorra horas. Si info.php carga y tu proyecto no, no reinstales nada: revisa rutas, .htaccess y estructura de carpetas.
Errores 404 que no son 404 reales
Ojo con esto porque confunde mucho. Algunos frameworks como Laravel o Symfony muestran su propio 404 cuando no encuentran una ruta, aunque el archivo exista. No es Apache, es el framework.
En esos casos el error 404 en XAMPP no se arregla tocando Apache. Hay que revisar el archivo de rutas del framework, el public/index.php y la configuración de DocumentRoot. Si usas Laravel, el DocumentRoot de tu VirtualHost debe apuntar a la carpeta public, no a la raíz del proyecto.
Esto es un fallo muy típico y mucha gente se vuelve loca cambiando puertos cuando el problema es que Apache está sirviendo la carpeta equivocada.
Checklist rápido para dejar de ver el 404
- Comprueba que el archivo existe en C:xampphtdocs.
- Verifica mayúsculas, guiones y extensión del nombre.
- Renombra el .htaccess y recarga.
- Comprueba mod_rewrite y AllowOverride All.
- Mira el log de Apache en xampp/apache/logs/error.log.
- Si Apache no arranca, cambia el puerto 80 por 8080.
- Crea un info.php para confirmar que PHP responde.
- Si usas framework, revisa el DocumentRoot y las rutas internas.
Con esto resuelves el error 404 en XAMPP en la mayoría de casos. Y si después de todo sigues con el problema, deja el log de Apache a la vista: ahí está escrito, en texto plano, lo que está pasando. Casi nadie lo lee y casi siempre tiene la respuesta.