我的网站部署在AWS Beanstalk上。由于我的内容是动态的,我每天都会重新生成一个站点地图,该站点地图必须部署在我的网站上(它必须位于同一个域下)。
以前(在Azure和共享主机上)我是通过使用FTP上传我的站点地图文件来实现的。
如何在AWS Beanstalk上上传站点地图?
答案 0 :(得分:2)
扩展@ MattHouser的答案,这是我如何解决这个问题。
1)在您的robots.txt
文件中,告诉抓取工具在哪里找到该网站地图:
Sitemap: https://www.example.com/sitemap.xml.gz
2)在您的网络服务器配置中,将请求重定向到sitemap.xml.gz
到S3。这是我在Rails中的表现:
<强>配置/ routes.rb中强>
# Redirect sitemap files to S3 since google wants sitemaps to be hosted on the primary domain
match '/sitemap.xml.gz' =>
redirect { |params, _req|
"https://s3.amazonaws.com/elasticbeanstalk-us-east-1-xxxxxxxxxxxx/sitemaps/sitemap.xml.gz"
}, via: [:get]
答案 1 :(得分:1)
您有几个选择:
选项1:
根据请求动态生成站点地图。作为第二步,将生成的站点地图存储在某个地方的缓存中(ElastiCache,S3等)。
选项2:
将站点地图存储在S3上。请求站点地图URL时,从S3下载数据并将其转发给您的用户。当您需要更新站点地图时,请将更新的数据上传到S3。