Página 1 de 1

Crear páginas personalizadas de error 403 y 404  Tema Solucionado

Publicado: 15 Oct 2014, 19:30
por richi_knight
Mediante esta pequeña guía crearemos páginas personalizadas de error 403 y 404. Lo primero que debemos es saber (para aquellos que no lo sepan) que son los errores 403 y 404.
El error 403 se genera al intentar acceder a algún archivo que no permite su lectura, estos archivos no deben ser accesibles para evitar cualquier tipo de vulnerabilidad. Por ejemplo, intentad acceder al config.php de vuestro sitio, veréis que el servidor os da un error 403.
El error 404 se debe a que se intenta acceder a un archivo que no existe.
Demo error 403: http://la-futboleria.com/styles/
Demo error 404: http://la-futboleria.com/prueba-demo.html


Para crear una página personalizada con la cabecera, cuerpo y pie del estilo que use nuestro foro, seguid esta excelente guía de Mitch: http://www.phpbb-es.com/foro/soporte-ph ... tml#p96585 . No obstante aquí os dejo los pasos a seguir.
PÁGINA DE ERROR 403
Creamos el archivo php:

Código: Seleccionar todo

<?php
    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);

    // Start session management
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();

    page_header('TÍTULO DE LA PÁGINA - ERROR 403 ACCESO DENEGADO');

    $template->set_filenames(array(
        'body' => '/error-403.html',
    ));

    make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
    page_footer();
?>
Para cambiar el título de la página:

Código: Seleccionar todo

    page_header('TÍTULO DE LA PÁGINA ERROR 403 ACCESO DENEGADO'); 
Lo guardamos con el nombre "error-403.php" y lo subimos a la raiz de phpBB3.

Con el archivo del estilo hacemos lo mismo.
Creamos el html:

Código: Seleccionar todo

<!-- INCLUDE overall_header.html -->

<h2>ERROR 403</h2>

<div class="panel">
   <div class="inner"><span class="corners-top"><span></span></span>

   <div class="content">
      <p>
         <strong>ERROR 403</strong> Acceso denegado (lugar de mensaje de error).
      </p>
   </div>

   <span class="corners-bottom"><span></span></span></div>
</div>

<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
Lo guardamos como "error-403.html" y lo subimos a raiz/styles/tu-estilo/template/

Abrimos el archivo .htaccess
Buscar:

Código: Seleccionar todo

<Files "common.php">
Order Allow,Deny
Deny from All
</Files>

En una nueva línea añadimos:

Código: Seleccionar todo

ErrorDocument 403 /error-403.php

PÁGINA DE ERROR 404
Creamos el archivo php:

Código: Seleccionar todo

<?php
    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);

    // Start session management
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();

    page_header('TÍTULO DE LA PÁGINA ERROR 404 ARCHIVO NO ENCONTRADO');

    $template->set_filenames(array(
        'body' => '/error-404.html',
    ));

    make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
    page_footer();
?>
Para cambiar el título de la página:

Código: Seleccionar todo

    page_header('TÍTULO DE LA PÁGINA ERROR 404 NO ENCONTRADO'); 
Lo guardamos con el nombre "error-404.php" y lo subimos a la raiz de phpBB3.

Con el archivo del estilo hacemos lo mismo.
Creamos el html:

Código: Seleccionar todo

<!-- INCLUDE overall_header.html -->

<h2>ERROR 404</h2>

<div class="panel">
   <div class="inner"><span class="corners-top"><span></span></span>

   <div class="content">
      <p>
         <strong>ERROR 404</strong> Archivo no encontrado (lugar de mensaje de error).
      </p>
   </div>

   <span class="corners-bottom"><span></span></span></div>
</div>

<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
Lo guardamos como "error-404.html" y lo subimos a raiz/styles/tu-estilo/template/

Abrimos el archivo .htaccess
Buscar:

Código: Seleccionar todo

<Files "common.php">
Order Allow,Deny
Deny from All
</Files>

En una nueva línea añadimos:

Código: Seleccionar todo

ErrorDocument 404 /error-404.php

Importante: hay algunos hostings que permiten crear este tipo de páginas de su panel de control, otros tienen una página predeterminada que se puede anular desde el panel de control (como fue mi caso).

Si tenéis cualquier duda, como siempre al subforo correspondiente y con los datos de soporte :ok:

Saludos.