innoweb / silverstripe-robots
添加一个可从/admin/settings/配置的Robots.txt文件。
Requires
README
概述
添加一个可从/admin/settings/配置的Robots.txt文件,并将机器人元标签注入到所有页面中。
要求
- Silverstripe CMS 5.x
注意:此版本与SilverStripe 5兼容。对于SilverStripe 4,请参阅4发布分支。
安装
使用composer安装模块
composer require innoweb/silverstripe-robots dev-master
然后运行dev/build。
配置
Robots.txt
在SiteConfig(或已安装多站时的Site)中,CMS中有一个设置可以让你设置机器人模式。有三个选项:
- 允许所有
- 禁止所有
- 自定义内容
所有三种状态输出都通过模板管理,可以重写以适应应用程序或主题。
您可以使用以下.env变量强制设置状态(例如,用于开发或测试环境)
FORCE_ROBOTS_MODE="allow|disallow|custom"
允许所有
切换到'允许所有'时,模块使用模板Innoweb/Robots/RobotsController_allow.ss
,以下为默认内容
<% if $GoogleSitemapURL %>Sitemap: {$GoogleSitemapURL}<% end_if %>
User-agent: *
Disallow: /dev/
Disallow: /admin/
Disallow: /Security/
该模块检查是否安装了Google Sitemaps模块,并自动注入站点地图URL。
默认情况下,允许访问所有页面,并默认禁止访问开发和安全URL。
禁止所有
切换到'禁止所有'时,模块使用模板Innoweb/Robots/RobotsController_disallow.ss
,以下为默认内容
User-agent: *
Disallow: /
这将禁止所有机器人访问站点的任何页面。
自定义内容
此设置在CMS中会显示一个文本字段,可以在此处输入自定义代码。
模板包含以下代码,不会添加任何自定义代码
$RobotsContent.RAW
Silverstripe的良好标准robots.txt配置如下。在模块切换到'允许所有'时,用作默认配置
Sitemap: https://www.example.com/sitemap.xml
User-agent: *
Disallow: /dev/
Disallow: /admin/
Disallow: /Security/
机器人元标签
该模块会将机器人元标签注入到每个页面中。可以通过以下配置禁用元标签的注入,例如,如果模板中手动管理了机器人元标签
Page: robots_enable_metatag: false
默认情况下,所有页面都设置为index, follow
,以下有例外:
- 如果站点上的Robots.txt设置为'禁止所有'
- 环境设置为
test
或dev
- 当前页面由安全控制器显示
- 页面的优先级设置为
-1
(参见Google Sitemaps模块)
此外,可以为每种页面类型设置配置值以控制元标签。默认情况下,以下值被设置
Page: robots_noindex: false robots_nofollow: false SilverStripe\CMS\Model\VirtualPage: robots_noindex: true robots_nofollow: true SilverStripe\ErrorPage\ErrorPage: robots_noindex: true robots_nofollow: true
可以根据需要为任何自定义页面类型自定义这些值。
许可证
BSD 3-Clause许可证,请参阅许可证