laravel-freelancer-nl/laravel-index-now

通知搜索引擎内容变更。

v1.3 2024-03-17 12:48 UTC

This package is auto-updated.

Last update: 2024-09-08 18:16:02 UTC


README

Latest Version on Packagist Code Quality Tests Code Coverage License Total Downloads

此包提供了一个用于在Laravel中调用IndexNow API的包装器。这使得在(某些)搜索引擎中快速索引新网页变得简单快捷。它是网站地图的一个很好的补充。

IndexNow 是由微软Bing和Yandex创建的一个API,允许您快速将其页面变更提交给他们的搜索引擎。向一个搜索引擎的提交将自动传递给其他搜索引擎。

在撰写本文时,Google正在考虑支持该API,并且已宣布它将对其进行测试

安装

您可以通过Composer安装此包

composer require laravel-freelancer-nl/laravel-index-now

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="index-now-config"

这是发布配置文件的内容

return [
    'host' => env('APP_URL', 'localhost'),
    'key' => env('INDEXNOW_KEY', ''),
    'key-location' => env('INDEXNOW_KEY_LOCATION', ''),
    'log-failed-submits' => env('INDEXNOW_LOG_FAILED_SUBMITS', true),
    'production-env' => env('INDEXNOW_PRODUCTION_ENV', 'production'),
    'search-engine' => env('INDEXNOW_SEARCH_ENGINE', 'api.indexnow.org'),
    'delay' => env('INDEXNOW_SUBMIT_DELAY', 600),
];
  • host:您要将页面提交给搜索引擎的域名
  • key:此域的唯一密钥(您将在下一步中生成一个)
  • key-location:密钥文件的目录和/或前缀
  • log-failed-submits:在非生产环境中禁用提交尝试的日志记录
  • production-env:生产环境的名称
  • search-engine:您希望提交的特定搜索引擎的域名
  • delay:延迟页面提交的秒数

生成新的密钥

IndexNow API将请求密钥与主机域名内的密钥文件匹配。要生成密钥文件,请使用以下Artisan命令

php artisan index-now:generate-key

这将在您项目的public_dir()中创建一个密钥文件,并输出密钥。复制显示的密钥并将其放置在您的.env文件中。

如果您已在配置中设置了密钥位置,则将在文件之前添加前缀。

运行此命令多次将生成新的密钥和密钥文件。

仅提交生产环境中的页面

您可能不想在除生产环境之外的环境中提交页面。

默认情况下,此包假定您的生产环境名为'production',并且仅在匹配包中配置的名称时才会提交。

在环境不匹配的情况下,它将记录提交'尝试'而不是将页面实际提交给搜索引擎。

如果您使用生产环境的替代名称,可以在.env中设置INDEXNOW_PRODUCTION_ENV以匹配。

您可以通过将INDEXNOW_PRODUCTION_ENV设置为false来禁用此功能。

用法

您可以通过调用外观并传递URL(s)到提交方法来提交一个或多个页面。

请注意,URL必须完全限定,不带查询参数和片段。

提交单个页面

use LaravelFreelancerNL\LaravelIndexNow\Facades\IndexNow;

IndexNow::submit('https://dejacht.nl/jagen');

提交多个页面

要一次性提交多个页面,只需添加URL数组。

use LaravelFreelancerNL\LaravelIndexNow\Facades\IndexNow;

IndexNow::submit([
    'https://dejacht.nl',
    'https://dejacht.nl/fotoquiz/',
    'https://dejacht.nl/jagen/',
    'https://dejacht.nl/jachtvideos/',
]);

防止垃圾邮件:延迟页面提交

您可以通过使用delaySubmission方法来延迟页面提交。这将使用配置的延迟(以秒为单位)调度IndexNowSubmitJob。作业按有效负载唯一,因此相同的URL的多次提交不会在当前作业处理之前将作业推送到队列。

use LaravelFreelancerNL\LaravelIndexNow\Facades\IndexNow;

IndexNow::delaySubmission('https://devechtschool.nl');

您可以通过添加自己的来覆盖已配置的默认延迟。

use LaravelFreelancerNL\LaravelIndexNow\Facades\IndexNow;

IndexNow::delaySubmission('https://devechtschool.nl', 100);

何时延迟提交

在创建或更新页面后进行额外编辑是常有的事。在这些操作中,延迟提交是一个好主意。

删除页面时,您可以直接立即提交URL。

测试

composer test

变更日志

有关最近变更的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞的详细信息,请参阅我们的安全策略

致谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件