添加站点地图和搜索引擎机器人
尝试生成sitemap.xml
文件并将其写入根目录会导致以下错误:
Please make sure that "/" is writable by the web-server.
在云基础架构上使用Adobe Commerce,您只能写入特定目录,如var
、pub/media
、pub/static
或app/etc
。 当您使用“管理”面板生成sitemap.xml
文件时,必须指定/media/
路径。
您不必生成robots.txt
文件,因为它根据需要生成robots.txt
内容并将其存储在数据库中。 您可以使用<domain.your.project>/robots.txt
或<domain.your.project>/robots
链接在浏览器中查看内容。
这需要ECE-Tools版本2002.0.12及更高版本和更新的.magento.app.yaml
文件。 在magento-cloud存储库中查看这些规则的示例。
要生成版本2.2及更高版本的sitemap.xml
文件,请执行以下操作:
-
访问管理员。
-
在 营销 菜单上,单击 SEO和搜索 部分中的 网站地图。
-
在 站点地图 视图中,单击 添加站点地图。
-
在 新建站点地图 视图中,输入以下值:
- 文件名:
sitemap.xml
- 路径:
/media/
- 文件名:
-
单击 保存并生成。 新的站点地图将在 站点地图 网格中变得可用。
-
单击Google 的 链接列中的路径。
要将内容添加到robots.txt
文件:
- 访问管理员。
- 在 Content 菜单上,单击 设计 部分中的 配置。
- 在 设计配置 视图中,在 操作 列中单击网站的 编辑。
- 在 主网站 视图中,单击 搜索引擎机器人。
- 更新robots.txt 字段的 编辑自定义指令。
- 单击 保存配置。
- 验证浏览器中的
<domain.your.project>/robots.txt
文件或<domain.your.project>/robots
URL。
<domain.your.project>/robots.txt
文件生成404 error
,请提交Adobe Commerce支持票证以移除从/robots.txt
到/media/robots.txt
的重定向。使用Fastly VCL代码片段重写
如果您有不同的域并且需要单独的站点地图,则可以创建一个VCL以路由到正确的站点地图。 如上所述,在“管理”面板中生成sitemap.xml
文件,然后创建自定义Fastly VCL代码片段来管理重定向。 查看自定义Fastly VCL片段。
使用Fastly VCL代码片段进行重定向
创建自定义VCL代码片段,以使用type
和content
键值对将sitemap.xml
的路径重写为/media/sitemap.xml
。
{
"name": "sitemapxml_rewrite",
"dynamic": "0",
"type": "recv",
"priority": "90",
"content": "if ( req.url.path ~ \"^/?sitemap.xml$\" ) { set req.url = \"/media/sitemap.xml\"; }"
}
以下示例演示了如何将robots.txt
和sitemap.xml
的路径重写为/media/robots.txt
和/media/sitemap.xml
{
"name": "sitemaprobots_rewrite",
"dynamic": "0",
"type": "recv",
"priority": "90",
"content": "if ( req.url.path ~ \"^/?sitemap.xml$\" ) { set req.url = \"/media/sitemap.xml\"; } else if (req.url.path ~ \"^/?robots.txt$\") { set req.url = \"/media/robots.txt\";}"
}
要对特定域重定向 使用Fastly VCL代码片段:
创建域为domain.com
的pub/media/domain_robots.txt
文件,并使用下一个VCL代码片段:
{
"name": "domain_robots",
"dynamic": "0",
"type": "recv",
"priority": "90",
"content": "if ( req.url.path == \"/robots.txt\" ) { if ( req.http.host ~ \"(domain).com$\" ) { set req.url = \"/media/\" re.group.1 \"_robots.txt\"; }}"
}
VCL代码段路由http://domain.com/robots.txt
并显示pub/media/domain_robots.txt
文件。
要在单个代码片段中配置robots.txt
和sitemap.xml
的重定向,请创建pub/media/domain_robots.txt
和pub/media/domain_sitemap.xml
文件(域为domain.com
)并使用下一个VCL代码片段:
{
"name": "domain_sitemaprobots",
"dynamic": "0",
"type": "recv",
"priority": "90",
"content": "if ( req.url.path == \"/robots.txt\" ) { if ( req.http.host ~ \"(domain).com$\" ) { set req.url = \"/media/\" re.group.1 \"_robots.txt\"; }} else if ( req.url.path == \"/sitemap.xml\" ) { if ( req.http.host ~ \"(domain).com$\" ) { set req.url = \"/media/\" re.group.1 \"_sitemap.xml\"; }}"
}
在sitemap
管理配置中,您必须使用pub/media/
而不是/
指定文件的位置。
按搜索引擎配置索引
要在生产环境中激活robots.txt
自定义项,您必须启用项目设置中的<environment-name>
的 按搜索引擎索引处于打开状态选项。
-
只能在生产环境中启用按搜索引擎编制索引,而不能在任何较低级别的环境中启用。
-
如果您正在使用PWA Studio并且无法访问配置的
robots.txt
文件,请将robots.txt
添加到前名PWA,位于 商店 >配置> 常规 > Web > UPPER允许列表配置。