我的网站有一个文章列表,每篇文章都是未发布的,并发布了多次。
当published标志为off (0)时,将无法再访问该文章。
当文章不再可访问时,我将用户重定向到主页,我尝试使用301重定向:
header("Location: /", true, 301);当一篇文章发布,然后取消发布,然后再次发布时,浏览器似乎缓存了指向主页的未发布重定向,您不能再查看该文章-即使它的已发布标志设置为1。
所以我试了302:
header("Location: /", true, 302);但我一直在读到不建议使用这种方法。
有没有更好的方法来实现这一点?
发布于 2014-08-11 16:52:24
您不恰当地使用了HTTP代码。
重定向标头(301等)旨在指示所请求的内容确实存在并且是可访问的,只是它不再位于所请求的位置。如果您已取消发布文档,则无法从任何位置访问该文档。在这种情况下,发送3XX重定向代码是错误的,因为您误导了浏览器和其他用户代理,如Google的机器人。
您应该发送一个代码,指示该内容不再可用(410不可用、403禁止或404未找到),并显示一个错误页面。如果你愿意,这个错误页面可以是主页的副本,但出于可用性的原因,我建议你不要这么做。最好是告诉人们内容不再可用,而不是直接重定向到主页。
顺便说一句,302不再意味着“暂时移动”,它现在意味着“找到”。临时重定向的正确HTTP代码现在是303 ("See other")。
https://stackoverflow.com/questions/25239100
复制相似问题