Beste tweakers,
Het lukt me niet om met PHP/MySQL een redirect met de juiste header http response te maken wanneer een bezoeker een entry opvraagt uit mijn database die niet bestaat. De http response 404 wordt omgezet naar een 302 en vervolgens geredirect
Ik zal hier heel globaal de structuur opzetten zoals ik 'm gemaakt heb:
eerst wordt $_GET['p'] beveiligd met mysql_real_escape_string(), stripslahes, trim etc. Daarna wordt gekeken of de gestripte versie van $_GET['p'] ook voorkomt in de database, zo ja, php code uitvoeren en hangen aan html template, zo nee, dan de volgende code:
Iemand enig idee wat ik hier fout doe, vergeten ben, whatever?
maar dank as usual is groot
Het lukt me niet om met PHP/MySQL een redirect met de juiste header http response te maken wanneer een bezoeker een entry opvraagt uit mijn database die niet bestaat. De http response 404 wordt omgezet naar een 302 en vervolgens geredirect
Ik zal hier heel globaal de structuur opzetten zoals ik 'm gemaakt heb:
eerst wordt $_GET['p'] beveiligd met mysql_real_escape_string(), stripslahes, trim etc. Daarna wordt gekeken of de gestripte versie van $_GET['p'] ook voorkomt in de database, zo ja, php code uitvoeren en hangen aan html template, zo nee, dan de volgende code:
PHP:
Als ik vervolgens een pagina opvraag met bijvoorbeeld Samspade of httpliveheader extensie van firefox, dan zie ik dat er een 302 header verstuurd wordt naar de 404-pagina toe. Dat levert (in samspade) bijvoorbeeld de volgende headers op:1
2
3
4
5
6
7
| else { header("HTTP/1.1 404 Not Found"); // heb ook geprobeerd: header("HTTP/1.0 404 Not Found"); // en: header("Status: 404 Not Found"); header("location: /404.php"); } |
code:
Ik heb er een paar elementen uitgelaten voor verduidelijking, maar het gaat dus om de eerste regel, dat zou een 404 moeten zijn...1
2
3
4
5
6
7
| HTTP/1.1 302 Found Date: Wed, 20 Dec 2006 13:27:19 GMT Status: 404 Not Found location: /404.php |
Iemand enig idee wat ik hier fout doe, vergeten ben, whatever?
maar dank as usual is groot