league/stack-robots

此包已被废弃,不再维护。未建议替代包。

StackPHP 的 StackRobots 中间件

v1.1.1 2014-02-01 20:45 UTC

This package is not auto-updated.

Last update: 2023-05-22 18:41:41 UTC


README

Build Status Total Downloads Latest Stable Version

StackRobots 是 StackPHP 的一个中间件。它为非生产环境提供默认的 robots.txt。

通过 Composer 安装

{
    "require": {
        "league/stack-robots": "~1.0"
    }
}

用法

StackRobots 是一个非常简单的中间件。默认情况下,它会检查 SERVER_ENV 环境变量,如果 SERVER_ENV 不等于生产环境,它将捕获响应并设置一个值为 noindex, nofollow, noarchiveX-Robots-Tag 头部。

当你将中间件推送到栈上时,你可以传递两个额外的参数,$env$envVar$env 参数是你希望此中间件不执行的环境,通常为 production$envVar 参数是存储当前服务器环境的环境变量;默认为 SERVER_ENV

如果 SERVER_ENV 的值与传递的值匹配,则此中间件将直接将控制权传递给下一个中间件。但是,如果不匹配,则 StackRobots 将设置 X-Robots-Tag。此外,如果传入的请求是为你的 /robots.txt 文件,则 StackRobots 将停止请求并发送以下响应。

return new Response("User-Agent: *\nDisallow: /", 200, array('Content-Type' => 'text/plain'));

浏览器将接收到以下内容。

User-Agent: *
Disallow: /

有关 X-Robots-Tag 的更多信息,请参阅 此处

示例

include_once '../vendor/autoload.php';

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use League\StackRobots\Robots;

$app = new Stack\CallableHttpKernel(function (Request $request) {
    return new Response('Hello World!');
});

putenv('SERVER_ENV=dev');

$app = (new Stack\Builder)
    ->push('League\\StackRobots\\Robots')
    ->resolve($app);

Stack\run($app);

作者