Hola a todos.
Quisiera saber como puedo personalizar el error 404, he estado buscando información de como poder hacerlo que casi la mayoría apuntan al archivo .htaccess así que cree uno nuevo en /etc/apache2 y puse este parámetro:
ErrorDocument 404 /miproyecto/error404.php
El directorio donde tengo alojado la página esta en /var/www/miproyecto y ahí mismo puse el archivo error404.php pero aún así no me sale, solo me coge la de por defecto e incluso en .htaccess puse este otro parametro:
ErrorDocument 404 "ESTO ES UN ERROR DE PRUEBA"
y nada, me sigue cogiendo la de por defecto.
En la configuración de apache tengo este parámetro habilitado:
AccesssFileName .htaccess
Y en sites-availables el archivo default tiene lo siguiente:
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
Por defecto está el AllowOverride None (creo que es donde sobrescribe o coge lo hay en .htaccess) cambie el valor por All e incluso lo comente y nada sigue igual tanto una forma como otra. El archivo .htaccess los permiso están todos dados 777. Mi sistema es un Ubuntu 12.4 LTS e incluso lo probe en un portatil con un Debian 7 y ocurre lo msimo.
¿Cuál es el problema?¿Alguna solución?
Gracias y un saludo.
No es obligatorio usar un .htaccess para un Error 404, en tu caso tienes acceso al fichero de configuración del apache y lo puedes añadir allí.
Todo lo que se puede hacer con un .htaccess también se puede hacer con el http.conf del apache.
Si, para que "lea" los ficheros .htacces el AllowOverride tiene que ser All
Si no quieres usar el .htaccess puedes dejarlo asi:
Citar<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
con AllowOverride None
pero añadir fuera del Directory
ErrorDocument 404 /error404.php
error404.php tiene que estar en /var/www/error404.php porque es el DocumentRoot
Citar<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorDocument 404 /error404.php