1

我正在构建一个静态站点并尝试对代码进行一些模块化。使用 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。问题可能很愚蠢,可能有最简单的答案,我只是不知道我是否应该使用重定向或其他一些调整。

谢谢!

4

1 回答 1

1

你可以通过多种方式做到这一点。

  1. 添加 Robots.txt 文件
  2. 在您包含的文件中添加一个用于身份验证的密钥变量。

1- Robots.txt:
将其保存为您网站根目录中的 Robots.txt。

User-agent: *
Disallow: /elements

将文件保存在元素文件夹中。无论元素文件夹中的内容是什么,Google 和其他搜索引擎的 Crawler 都不会对其进行抓取。这永远不会在搜索结果中列出。

2- 使用密钥认证 index.php 将如下所示:

>

<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 } ?>
于 2016-01-22T09:31:05.407 回答