league / stack-robots
此包已被废弃,不再维护。未建议替代包。
StackPHP 的 StackRobots 中间件
v1.1.1
2014-02-01 20:45 UTC
Requires
- php: >=5.3.10
- symfony/http-foundation: ~2.1
- symfony/http-kernel: ~2.1
Requires (Dev)
- stack/builder: 1.0.*@dev
- stack/callable-http-kernel: ~1.0@dev
- stack/run: ~1.0@dev
This package is not auto-updated.
Last update: 2023-05-22 18:41:41 UTC
README
StackRobots 是 StackPHP 的一个中间件。它为非生产环境提供默认的 robots.txt。
通过 Composer 安装
{ "require": { "league/stack-robots": "~1.0" } }
用法
StackRobots 是一个非常简单的中间件。默认情况下,它会检查 SERVER_ENV
环境变量,如果 SERVER_ENV
不等于生产环境,它将捕获响应并设置一个值为 noindex, nofollow, noarchive
的 X-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);
作者
- Don Gilbert @dilbert4life
- 受 Ruby 中的 Cylon 启发。