我有在 linux 环境下运行的 nginx 服务器,它正在处理域www.example1.com
和www.example2.com
. 每个域都有自己的站点地图,因此我需要为每个域加载正确的站点地图,因为它位于根目录中,例如:
www.example1.com/sitemap.xml
实际上是从www.example1.com/sitemaps/1/sitemap.xml
和:
www.example2.com/sitemap.xml
实际上是从www.example2.com/sitemaps/2/sitemap.xml
为此,我尝试为每个域分配一个值并根据变量值重写它,如下所示:
在 nginx.conf 中:
map $http_host $domain {
www.example1.com 1;
www.example2.com 2;
}
在 sitemap.conf 中:
if($domain=1){
rewrite sitemaps/1/sitemap(.*)$ /sitemap last;
}
if($domain=2){
rewrite sitemaps/2/sitemap(.*)$ /sitemap last;
}
但由于某种原因,此配置返回 404。
有什么建议吗?
我没有看到您的完整配置,也不知道您如何以及在何处包含该
sitemap.conf
文件,但我宁愿以完全不同的方式进行。使用您现有的map
块,它看起来像甚至使用以下指令获取
/sitemaps/N/
文件夹的完整路径map
和
如果您仍想
rewrite
对该任务使用该指令,则说明您使用不正确。你可以试试这个:甚至更优化: