Zend框架 - 我如何制作robots.txt文件?

时间:2015-11-26 08:13:56

标签: php zend-framework zend-framework2

Zend framework 2x如何制作http://www.example.com/robots.txt? 我有跟随引导程序,但它无法理解“robots.txt”仅在我转到http://www.example.com/robots时才有效

$route = Http\Segment::factory(array(
  'route' => '/robots[/:action]',
  'defaults' => array(
    'controller' => 'Application\Controller\Sitemap',
    'action' => 'index'
  ),
));
$router->addRoute('robots', $route, null);

3 个答案:

答案 0 :(得分:2)

1)将robots.txt添加到物理路径。

您只需在公共路径中添加物理robots.txt文件即可。 ZF2不会将流量重新路由到公共路径中的现有文件。

因此,如果您将文件放在/public/robots.txt内,那么对以下内容的请求只会加载文件:

http://www.example.com/robots.txt

2)确保robots.txt有内容

该文件需要内容it wont work 例如:

User-agent: *
Disallow: /

3)检查您的重写规则

如果仍然无效,您应该检查您的重写规则(.htaccessweb.config文件)是否已配置according to the specs in the ZF2 documentation

答案 1 :(得分:2)

.txt之后添加'route' => '/robots.txt',并删除[/:action]

所以你的代码看起来像这样。

    $route = Http\Segment::factory(array(
        'route' => '/robots.txt',
        'defaults' => array(
            'controller' => 'Application\Controller\Sitemap',
            'action' => 'index'
        ),
    ));
    $router->addRoute('robots', $route, null);

编辑:我知道有些人会希望它在磁盘上是物理的,但这样你就有了一个dynamicrobots.txt文件,可以用数据库中的东西填写。

Edit2:是的,我知道你可以把它写在磁盘上,但是有很多方法可以做到这一点。

答案 2 :(得分:2)

如果您想要链接到www.example.com/robots.txt,只需将此robots.txt文件保存到公共文件夹