Url rewriting et 404

Fermé
gabbermaniac Messages postés 137 Date d'inscription mercredi 4 mars 2009 Statut Membre Dernière intervention 23 août 2011 - 28 mars 2010 à 11:17
gabbermaniac Messages postés 137 Date d'inscription mercredi 4 mars 2009 Statut Membre Dernière intervention 23 août 2011 - 28 mars 2010 à 16:41
Bonjour,

Je rencontre un problème de redirection lorsque je change l'id de l'url.
Si je met une id valide (présent dans ma bdd)cela affiche bien la page avec le bon contenu, or si je met une id invalide (qui n'existe pas dans ma bdd) cela m'affiche une page avec écrit: Not Found
The requested URL /playmocity/theme/- was not found on this server.

Ma règle rewrite:
RewriteRule theme/([a-zA-Z0-9\-]+)-([0-9]+) index.php?p=theme/article&url=$1&id=$2

Mon code est le suivant dans la page article
	$id=$_GET["id"];
	$sql="SELECT * FROM theme WHERE id=$id";
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
	$data=mysql_fetch_assoc($req);
	if($data["url"]!=$_GET["url"]){
		header("location:/playmocity/theme/".$data["url"]."-".$data["id"]);
	}



Est-ce sur ce code qu'il faut opérer une redirection vers 404 ? où sur la page index.php à la racine du texte qui contient:
if(!isset($_GET["p"])&& preg_match("/^[a-z0-9]+$/i",$_GET['p'])){$_GET["p"]="index"; }
if(!file_exists("content/".$_GET["p"].".php")){ $_GET["p"]="404"; }


Merci à vous de m'aider.

2 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 503
28 mars 2010 à 15:18
Je ne suis pas sûr d'avoir bien compris, alors je vais faire comme je pense.

Les vérifications sont à faire avant tout envoie de caractères (doctype, ...).
Ainsi, tu pourras renvoyer un code 404 via la fonction header() et faire un include de ta page d'erreur 404.
<?php
if(/* si la page n'est pas valide */) {
    header('HTTP/1.0 404 Not Found');
    include('404.php');
} else {
    
}
?>
0
gabbermaniac Messages postés 137 Date d'inscription mercredi 4 mars 2009 Statut Membre Dernière intervention 23 août 2011 12
28 mars 2010 à 16:41
bonjour,

merci de ta réponse
le soucis est que ce code n'est vrai que pour une seule page (article.php) et cette page est de plus une include

donc je ne sais pas comment adapter le code dans ce cas la, j'ai essayer mais cela n'a pas fonctionner pour l"instant. ;)
0