{{tag>dokuwiki nginx}} # /sitemap.xml が要求される つらつらとログを眺めていると、/sitemap.xml を要求する bot さんが多いんですよね。/robots.txt に `sitemap:` って定義してるんだからそこ見てよ。そんぐらいしてくれないなら、キミはクロールしてくれなくてもいいよ……とか思わないでもなくもないんですけどね。 ## nginx の設定でどうにかする 単純に、こんな定義を nginx.conf に切ってあげればいいんですよね。 ``` location ^~ /dokuwiki/sitemap.xml { rewrite /dokuwiki/sitemap.xml$ /dokuwiki/doku.php?do=sitemap last; } ``` うちの設定だと、reverse proxy の `/` はバックエンドの `/dokuwiki/` に proxy されているので、バックエンド側でこんな設定を入れてみました。ただ、単にこれだけ設定すると応答で返すのが sitemap.xml.gz になっちゃうんですよね。[ngx_http_gunzip_module](http://nginx.org/en/docs/http/ngx_http_gunzip_module.html) モジュール組み込んで `gunzip on;` とか色々試したんですが、dokuwiki は `Content-Encoding: gzip` を設定してくれないのでスルーされてるっぽいです。 ……gzip ぐらいは展開して読んでくれよとか思わないでもなくもn(ry どうなんでしょうね? これ gzip のまま送りつけても、世の bot さんは読んでくれるんですかね? ## dokuwiki の設定でどうにかする サイトの管理→高度な設定に「アーカイブの圧縮方法」なんてのがあるので、そこを「圧縮しない」にすれば sitemap.xml は圧縮されずに response されます。されますが……ん~スマートじゃないなぁ。どうにかならないものか。 ## 結局のところ…… とりあえず gzip のまま投げ返してみることにしました。まぁ bot さん gzip ぐらいうまいこと捌いてよということで。