Php Zend framework-如何生成robots.txt文件?

Php Zend framework-如何生成robots.txt文件?,php,zend-framework,zend-framework2,Php,Zend Framework,Zend Framework2,Zend framework 2x如何制作http://www.example.com/robots.txt? 我在bootstrap中有以下内容,但它无法理解“robots.txt”仅在我转到http://www.example.com/robots $route = Http\Segment::factory(array( 'route' => '/robots[/:action]', 'defaults' => array( 'controller' =>

Zend framework 2x如何制作
http://www.example.com/robots.txt
? 我在bootstrap中有以下内容,但它无法理解“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);
1)向物理路径添加
robots.txt

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

因此,如果将该文件放入
/public/robots.txt
中,则对以下内容的请求将直接加载该文件:

http://www.example.com/robots.txt
2)确保
robots.txt
包含内容

文件需要其他内容。
例如:

User-agent: *
Disallow: /
3)检查您的重写规则


如果仍然不起作用,您应该检查您的重写规则(
.htaccess
web.config
文件)是否已配置

'route'=>'/robots.txt'之后添加
.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:是的,我知道你可以把它写在磁盘上,但是有很多方法可以做到这一点。

如果你想链接到www.example.com/robots.txt,简单地把这个robots.txt文件保存到公共文件夹中

为什么??保持简单,只需创建robots.txt。如果不在眼睛里使用正则表达式-我确实是先吻了,但它不起作用。不可能,必须起作用:)或者你有一些错误的访问权限。有一行写着,如果存在,转到文件,或者转到index.php。记住,一些服务器上的空robots.txt不起作用首先我在public中添加了robots.txt文件/如您所述,但这不起作用。@Yumyum你确定该文件有内容吗?好的-现在它也起作用了,因为robots.txt没有内容,我不想破坏稳定的.htaccess文件,这就是为什么我更喜欢使用路由方法。@Yumyum欢迎你。不过,我认为我的回答应该被接受。使用路由是多余的。是的,但我也有数据库和自动链接,它们都需要准备好,然后显示为robots.txt文件,这就是为什么对我来说路由代码更好,而不是放置一个静态robots.txt文件。您的回答也被接受。:)您不需要robots.txt的路由!他正试图这么做,所以为什么不给出代码呢,他实际上是在根据代码从中获取一个站点地图。但我理解你!这就像把推土机交给要铲子的人一样。但好吧,我会取消我的否决票。如果你想要一个动态文件,而不是一个静态文件,这是正确的方法。它现在是这样工作的。但将robots.txt文件放入文件夹并不起作用。这正是我在回答中所说的。。。有什么新鲜事?