Organização de páginas e erro 404 em site PHP

  • Autor Autor nentab
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
N

nentab

Gamma
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
¡Hola a todos!

Estoy tratando de hacer una pequeña web, pero quería tener claro cómo organizar las páginas y la página 404. Espero que podáis ayudarme. Mi idea es la de tener un index.php que tenga el header, el footer, y en medio de éstos, lo siguiente:

PHP:
<?php
    switch($_GET['op']) {
        case "inicio":
            include("inicio.php");
            break;
        case "biografia":
            include("biografia.php");
            break;
        default:
            include("404.php");
            break;
    }
?>

Luego los archivos inicio.php, contacto.php y 404.php llevarían solo el contenido de la página.
Y en el .htaccess tengo el siguiente código para que muestre el contenido de inicio.php al entrar al index.php, y para tener las URLs "amigables":
Inserir CODE, HTML ou PHP:
RewriteEngine on
RewriteRule ^([^./]+)$ index.php?op=$1 [L]

DirectoryIndex index.php?op=inicio

De esta manera, si se entra a alguna de las siguientes direcciones, se ve el contenido de éstas (sin header y footer):
dominio.com/inicio.php
dominio.com/contacto.php
dominio.com/404.php


Pues bien, yo quiero que si se entra a alguna de estas últimas direcciones salga también el contenido del 404.php (index.php?op=404).

Y también quería que si se entra a cualquier dirección como, por ejemplo, cualquiera de las siguientes, muestre también el contenido del 404.php (index.php?op=404):
dominio.com/cualquiercosa.php
dominio.com/cualquiercosa.loquesea
dominio.com/cualquiercosa
dominio.com/otracosa


Espero haberme explicado bien, y ojalá alguien pueda ayudarme. ¡Saludos y gracias de antemano!
 
Última edição:
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
yo haría algo así

PHP:
RewriteRule ^([^./]+).php$ index.php?op=404 [L]

o nose, sería usar rewriteCon
Si pongo eso, al ir al /index.php ya sale el contenido del 404.php (index.php?op=404).
 
por eso el rewritecon, que solo lo haga si no es index.php
¿Y cómo sería el RewriteCond? Es que no sé mucho acerca del .htaccess.
 
Yo te recomendaría que para hacer todo más fácil desde tu .htaccess pongas el siguiente código:

Inserir CODE, HTML ou PHP:
ErrorDocument 404 /404.php

Así cualquier error 404 será redirigido automáticamente al documento 404.php

Y en el caso de que no quieras que accedan directamente a tus archivos, coloca un código como este en tus phps:
Inserir CODE, HTML ou PHP:
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'nombredearchivo.php' == basename($_SERVER['SCRIPT_FILENAME']))
	die ('Please do not load this page directly. Thanks!');

Saludos y espero te sirva
 
Yo te recomendaría que para hacer todo más fácil desde tu .htaccess pongas el siguiente código:

Inserir CODE, HTML ou PHP:
ErrorDocument 404 /404.php

Así cualquier error 404 será redirigido automáticamente al documento 404.php

Y en el caso de que no quieras que accedan directamente a tus archivos, coloca un código como este en tus phps:
Inserir CODE, HTML ou PHP:
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'nombredearchivo.php' == basename($_SERVER['SCRIPT_FILENAME']))
    die ('Please do not load this page directly. Thanks!');

Saludos y espero te sirva

Si pongo el código del ErrorDocument, entonces lo que hace es redirigir... Es decir, yo entro a cualquiera de estas direcciones:

dominio.com/cualquiercosa.php
dominio.com/cualquiercosa.loquesea
dominio.com/cualquiercosa
dominio.com/otracosa

Y me cambia la URL a dominio.com/404.php.

¿Existe la posibilidad de que, manteniendo la URL intacta, muestre el contenido del archivo 404.php? Como hace Wordpress, pongo un ejemplo de mi blog (sitio en construcción): Yo entro a alguna de estas URLs, y sin cambiar la URL, me muestra el error 404:

http://nentab.com/blog/cualquiercosa.php
http://nentab.com/blog/cualquiercosa.loquesea
http://nentab.com/blog/cualquiercosa
 
veo que ya lo solucionaste, al ingresar a esas url te muestra el contenido de 404 sin cambiar la url
 
veo que ya lo solucionaste, al ingresar a esas url te muestra el contenido de 404 sin cambiar la url
No lo solucioné. Expliqué en mi anterior mensaje que eso es lo que hace Wordpress. Y es lo que yo quiero conseguir en el resto de la web (lo que no es /blog/).
 
Nadie...? :/
 
Voltar
Topo