强制包括要包含的页面(即不能自己打开)

时间:2015-06-14 04:04:24

标签: php include

我正在创建自己的CMS系统,因为我厌倦了Wordpress(以及随之而来的黑客攻击)。

我的问题是:有没有办法强制我的包含目录中的页面只能作为包含的页面打开?基本上我正在做的是允许搜索引擎抓取我的public_html / blog_files和/ public_html / pages文件夹,但如果google在搜索中显示它们,我想要在预定页面内打开包含的页面。

通常,在我的网站上,我调用了包含blog_abc123.php页面的single_post.php页面。如果有人打开blog_abc123.php,我希望它将自己包含在single_post.php页面中,然后在其中显示带有blog_abc123.php的single_post.php页面。

我希望这个解释得很好,你可以理解我的想法。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

为什么您首先可以公开访问?你需要解决这个问题。

与此同时,您可以使用get_included_files()返回一个数组,其中包含到目前为止脚本中包含的所有文件。通过计算此数组的内容,您可以确定是否包含当前文件(因为如果不包含,它将是唯一的文件)。然后,您可以重定向到正确的父页面:

<?php
if (count(get_included_files()) == 1) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: /the-correct-url');
    exit;
}

Google会看到此301并正确索引您的网站。

有了这样说,你想要把这些包括在一开始就被抓走是很奇怪的。最好使用具有正确URL的站点地图。

答案 1 :(得分:0)

我的另一个选择是重写博客条目页面以包含其中包含标题,英尺等,但是那时我的主页只有包含该页面的一部分(即仅仅是正文)在显示最近的5篇帖子时?