我正在构建一个静态站点并尝试在代码上进行一些模块化。使用include_once解决了我的问题,但新创建的section.php文件被视为服务器上的另一个URL,恕我直言创建了一个SEO问题 - 重复内容。薄的理论,但仍然。 是否有任何解决方案可以使用include_once并将这些包含的文件标记为不存在爬虫?
只是一个代码示例,以更好地定义问题所在。
index.php如下所示:
<div id="wrapper">
<?php include_once ('header.php'); ?>
<div id="content">
<h1>Title</h1>
<p>Page content</p>
</div>
</div>
header.php如下所示:
<div id="header">
<ul class="menu">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="#">About</a>
</li>
<li>
<a href="#">Contact</a>
</li>
</ul>
</div>
生成的代码会像这样呈现:
<div id="wrapper">
<div id="header">
<ul class="menu">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="#">About</a>
</li>
<li>
<a href="#">Contact</a>
</li>
</ul>
</div>
<div id="content">
<h1>Title</h1>
<p>Page content</p>
</div>
</div>
header.php是服务器上的另一个文件,可以被搜索引擎索引,因为它有自己的URL。问题可能是愚蠢的,可能有最简单的答案,我只是不知道我是否应该使用重定向或其他一些调整。
谢谢!
答案 0 :(得分:1)
你可以通过多种方式实现。
1- Robots.txt:
将其保存为您网站根目录中的Robots.txt。
User-agent: *
Disallow: /elements
将文件保存在elements文件夹中。无论元素文件夹中是什么,Google和其他搜索引擎的Crawler都不会抓取它。这绝不会列在搜索结果中。
2-使用密钥身份验证 index.php将如下所示:
&GT;
<div id="wrapper">
<?php $key = 'allow_this'; ?>
<?php include_once ('header.php'); ?>
<div id="content">
<h1>Title</h1>
<p>Page content</p>
</div> </div>
header.php如下所示:
<?php if($key=='allow_this'){ ?>
<div id="header">
<ul class="menu">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="#">About</a>
</li>
<li>
<a href="#">Contact</a>
</li>
</ul>
</div>
<?php } ?>