我有一些页面,我不希望用户能够直接访问。
我有这个功能,我想出了它的作用:
function prevent_direct_access()
{
if($_SERVER['REQUEST_URI'] == $_SERVER['PHP_SELF'])
{
//include_once('404.php');
header("Location: 404.php");
}
}
这正是我想要的,URL不会改变但内容会改变。但是我想知道是否有一些东西我需要添加来告诉搜索引擎这是一个404而不是索引它。请记住,我不希望URL改变。
谢谢!
答案 0 :(得分:5)
请勿重定向,但发送404状态代码:
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
exit;
答案 1 :(得分:0)
对于搜索引擎,如果你返回HTTP状态404,他们不应该索引我相信。但是你总是可以重定向到robots.txt所涵盖的某个地方
答案 2 :(得分:0)
要确保搜索引擎不对其编制索引,请使用header()
命令发送404 lke;
header("HTTP/1.0 404 Not Found");
或者将所有此类文件放在一个文件夹中,“包括”说,并在robots.txt文件中添加“拒绝/包含/”。这样,您还可以在同一目录中添加一个“.htaccess”文件,其中包含一行 - “全部拒绝” - 这将告诉Apache阻止访问(如果apache配置正确),这是另一层安全。
答案 3 :(得分:0)
只是为了澄清:
(即“直接”并不意味着“除非通过本网站上其他页面的链接”)
只需将PHP文件保留在 webroot之外。这样一来就不会有URL。