子域上的nginx substitude文件sitemap.xml

时间:2017-03-21 11:16:56

标签: nginx sitemap

我在站点公共目录中有文件sitemap.xml。当我使用子域'm。'时,它使用与普通站点相同的公共目录。当我在子域'm'上时,我需要从url'/ sitemap.xml'返回'/mobile-sitemap.xml'文件。

哪些nginx模块和规则可以帮助我做到这一点?

我的第一步是这样的:

if ($host ~* m\.(.*)) { #if url = /sitemap.xml, give back file /mobile-sitemap.xml as /sitemap.xml }

或者谷歌可以,如果我只是将301重定向发送到另一个站点地图文件?

1 个答案:

答案 0 :(得分:1)

您可以为移动子域创建单独的服务器块,在这种情况下,if语句不是必需的。有关使用if的信息,请参阅this caution

但是,要在单个服务器块中实现此功能,请使用locationrewrite

location = /sitemap.xml {
    if ($host ~* m\.) {
        rewrite ^ /mobile-sitemap.xml last;
    }
}

有关详情,请参阅thisthis