子域上的 nginx 替换文件 sitemap.xml
nginx substitude file sitemap.xml on subdomain
我在站点 public 目录中有文件 sitemap.xml。当我使用子域 'm.' 时,它使用与一般站点相同的 public 目录。当我在子域 'm.'.[=12= 上时,我需要从 url '/sitemap.xml' return 文件 '/mobile-sitemap.xml' ]
哪些 nginx 模块和规则可以帮助我做到这一点?
我的第一步是这样的:
if ($host ~* m\.(.*)) {
#if url = /sitemap.xml, give back file /mobile-sitemap.xml as /sitemap.xml
}
或者如果我只是将 301 重定向发送到另一个站点地图文件,google 也可以吗?
您可以为您的移动子域创建一个单独的服务器块,在这种情况下就不需要 if
语句。请参阅 this caution 关于 if
.
的用法
但是,要在单个服务器块中实现此功能,请使用 location
和 rewrite
:
location = /sitemap.xml {
if ($host ~* m\.) {
rewrite ^ /mobile-sitemap.xml last;
}
}
我在站点 public 目录中有文件 sitemap.xml。当我使用子域 'm.' 时,它使用与一般站点相同的 public 目录。当我在子域 'm.'.[=12= 上时,我需要从 url '/sitemap.xml' return 文件 '/mobile-sitemap.xml' ]
哪些 nginx 模块和规则可以帮助我做到这一点?
我的第一步是这样的:
if ($host ~* m\.(.*)) {
#if url = /sitemap.xml, give back file /mobile-sitemap.xml as /sitemap.xml
}
或者如果我只是将 301 重定向发送到另一个站点地图文件,google 也可以吗?
您可以为您的移动子域创建一个单独的服务器块,在这种情况下就不需要 if
语句。请参阅 this caution 关于 if
.
但是,要在单个服务器块中实现此功能,请使用 location
和 rewrite
:
location = /sitemap.xml {
if ($host ~* m\.) {
rewrite ^ /mobile-sitemap.xml last;
}
}