我正在创建一个PHP CMS,并有一些系统页面,如404页面,维护页面和未经授权的访问页面.如果找不到页面A,CMS将重定向到404页面;如果用户无权访问页面B,它将重定向到未授权的访问页面等.
我想在每个页面的标题中使用正确的状态代码,但我需要澄清如何处理标题/重定向.我是否将404标题放在页面A上,然后重定向到404页面,还是将404状态放在404页面上?另外,如果后者是正确的答案,我应该使用什么样的重定向到达301或302?
解决方法:
如果用户到达页面A并且该页面不存在,则不要重定向:只需从页面A发送404错误代码 – 并且,为了对您的用户有益,HTML内容指示该页面不存在.
通过这种方式,浏览器(对于抓取工具来说更是如此!)会知道找不到的页面是页面A,而不是您尝试重定向到的任何其他页面.
对于其他类型的错误也是如此,顺便说一下:如果特定的URL对应于错误,则应该从该URL发送错误代码.
基本上,这个简单的东西就足够了:
if (page not found) {
header("404 Not Found");
echo "some nice message that says the page doesn't exist";
die;
}
(当然,你可以输出更好的东西;但你明白了;-))