nginx 无法访问 Vanilla 论坛 sitemapindex.xml 文件
Vanilla Forums sitemapindex.xml file inaccessible by nginx
我的论坛是安装在url:example.com/forums
我使用 nginx 和 Vanilla 来 "prettify" url。我设置了
/forum/conf/config.php, “RewriteUrls” to “True”.
在我的 nginx.conf 中:
location /forums {
index index.php index.htm index.html;
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 30d;
}
try_files $uri $uri/ @forums;
}
location @forums {
rewrite ^/forums(.+)$ /forums/index.php?p= last;
}
问题是我安装了 Vanilla 论坛的 sitemap plugin。
生成的站点地图应该位于
example.com/forums/sitemapindex.xml
但是当我导航到那里时,nginx 给了我一个 404。
我该如何解决这个问题?
问题是 location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$
块正在处理 URI /forums/sitemapindex.xml
,而不是转发到 /forums/index.php
。
如果您不提供静态 .xml
文件,您可以简单地从正则表达式中删除 |xml
项。
否则,您需要将该 URI 设为特例,例如:
location = /forums/sitemapindex.xml {
rewrite ^ /forums/index.php?p=/sitemapindex.xml last;
}
我的论坛是安装在url:example.com/forums
我使用 nginx 和 Vanilla 来 "prettify" url。我设置了
/forum/conf/config.php, “RewriteUrls” to “True”.
在我的 nginx.conf 中:
location /forums {
index index.php index.htm index.html;
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 30d;
}
try_files $uri $uri/ @forums;
}
location @forums {
rewrite ^/forums(.+)$ /forums/index.php?p= last;
}
问题是我安装了 Vanilla 论坛的 sitemap plugin。
生成的站点地图应该位于
example.com/forums/sitemapindex.xml
但是当我导航到那里时,nginx 给了我一个 404。
我该如何解决这个问题?
问题是 location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$
块正在处理 URI /forums/sitemapindex.xml
,而不是转发到 /forums/index.php
。
如果您不提供静态 .xml
文件,您可以简单地从正则表达式中删除 |xml
项。
否则,您需要将该 URI 设为特例,例如:
location = /forums/sitemapindex.xml {
rewrite ^ /forums/index.php?p=/sitemapindex.xml last;
}