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 usted consigue una error 500 que puede tener diversos orígenes relacionados en general con el desarrollo de su sitio en un Alojamiento web, en particular con los rewrites
de sus archivos .htaccess
.
Preámbulo
- Apache2, en su lugar 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 sobre los errores de sintaxis y cuando encuentra errores de sintaxis en un archivo
.htaccess
, esto puede causar errores de 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 a 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 para activar o desactivar.
Options -Indexes FollowSymLinks
La corrección añade el signo "+
" para especificar que FollowSymLinks
debe activarse en lugar de desactivarse:
Options -Indexes +FollowSymLinks
Resolver estos errores
- Si la primera página u otra página muestra un error 500, renombrar el archivo
.htaccess
o comentar todas las líneas con#
y descommer línea por línea hasta encontrar el pasaje problemático. - Si el error ocurre después de una modificación realizada en una de sus páginas, lo más sencillo es restaurar la versión anterior del archivo.