1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Resolver un error 500 "Internal Server error"
Esta guía le concierne si obtiene un error 500 que puede tener diversas causas relacionadas generalmente con el desarrollo de su sitio en un Alojamiento Web, en particular con las rewrites
de sus archivos .htaccess
.
Prólogo
- Apache2, instalado en los servidores, ya no soporta ciertos módulos como
mod_auth_anon
,mod_auth_dbm
,mod_authz_dbm
,mod_cern_meta
,mod_imap
,mod_imagemap
,mod_mime_magic
- Apache2 es estricto con los errores de sintaxis y cuando encuentra errores de sintaxis en un archivo
.htaccess
, esto puede causar errores 500 Internal Server Error o errores de reescritura de URL inesperados
Ejemplos de sintaxis y corrección
En este primer ejemplo, el error de sintaxis es que la regla de reescritura no especifica el código de respuesta de redirección HTTP que se debe devolver.
RewriteRule ^articles/([0-9]+)/$ /article.php?id=$1 [L]
La corrección añade la directiva R=301
para especificar que la redirección debe devolver un código 301 (permanente):
RewriteRule ^articles/([0-9]+)/$ /article.php?id=$1 [L,R=301]
En este segundo ejemplo, el error de sintaxis es que la directiva Options
no especifica correctamente las opciones que se deben activar o desactivar.
Options -Indexes FollowSymLinks
La corrección añade el signo "+
" para especificar que FollowSymLinks
debe estar activado en lugar de desactivado:
Options -Indexes +FollowSymLinks
Resolver estos errores
- Si la primera página o cualquier otra página muestra un error 500, renombrar el archivo
.htaccess
o comentar todas las líneas con#
y descomentar línea por línea hasta encontrar el fragmento que causa el problema. - Si el error ocurre después de una modificación realizada en una de tus páginas, lo más sencillo es restaurar la versión anterior del archivo.