新增網站地圖和搜尋引擎自動機制
嘗試產生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程式碼片段:
建立pub/media/domain_robots.txt
檔案(網域為domain.com
),並使用下一個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>
的 索引由搜尋引擎開啟。