77981
OS: CentOS  
Webサーバ: nginx  
フレームワーク: DokuWiki

DokuWikiでサイトを作っています。  
DokuWikiの機能でサイトマップを自動生成してくれるのですが、ファイル名が`sitemap.xml.gz`となっています。

ブラウザで`http://example.com/sitemap.xml.gz`にアクセスすると、画面には何も表示されず、`sitemap.xml.gz`のダウンロードが始まります。

この、ファイルが勝手にダウンロードされる状態は正常動作なのでしょうか？  
（このままで検索エンジンはサイトマップを認識できるのでしょうか？）

* * *

ドキュメントルート: `/home/user1/dokuwiki`  
サイトマップのパス: `/home/user1/dokuwiki/data/cache/sitemap.xml.gz`

```

    lication = /sitemap.xml.gz {
        root /home/user1/dokuwiki/data/cache
    }
    
```

nginxの.confには上記のような設定をしています。

* * *

たとえば`.php`の場合、  
nginxの設定が不十分だと、アクセスしたときにダウンロードになってしまいます。  
しかし、fastcgiの設定をしてやるとphpが実行されてページが表示されます。

`.gz`の場合も、  
何か設定してやると、gzipが展開されて中身がブラウザで表示されたりするのでしょうか？

* * *

質問

  1. `.gz`がダウンロードされるのは正常動作なのか？  
（このままで検索エンジンがサイトマップを認識できるのか？）

  2. `.gz`を自動的に展開してブラウザ上にサイトマップを表示させることは可能か？

`.gz`のままで検索エンジンが認識できたとしても、ブラウザ上で人の目で見えるサイトマップは欲しいなと思いまして。  
新規に作成したページがサイトマップに反映しているか目視で確認したいので。
CC BY-SA 4.0
2021-07-05T00:26:01.327
77977
2021-07-05T04:35:45.777
2021-07-05T04:35:45.777
3060
45540
question
nginx google-search
ブラウザでsitemap.xml.gzが表示されない。勝手にダウンロードが始まるが正常動作なのか？
[sitemaps](https://www.sitemaps.org/ja/protocol.html#index)の仕様によると、

> 複数のサイトマップ ファイルを送信できますが、各サイトマップ ファイルにリストする URL は 50,000 個まで、ファイル サイズは50 MB
> (52,428,800 バイト) 以下とする必要があります。  
>  必要な場合は、サイトマップ ファイルを gzip 形式で 50 MB 以下に圧縮して、サーバーの負荷を軽減できます。  
>  50,000 個以上の URL をリストする場合は、複数のサイトマップファイルを作成する必要があります。

とあります。  
[Google](https://developers.google.com/search/docs/advanced/sitemaps/large-
sitemaps?hl=ja)のほうも

> 構文について詳しくは、サイトマップ プロトコルのページをご覧ください。

とありますので、gzで圧縮されていてもサーチエンジンで解析してもらえるようです。
CC BY-SA 4.0
2021-07-05T02:12:35.467
77978
2021-07-05T02:12:35.467
22665
77977
answer
拡張子 `.gz` は gzip と呼ばれる圧縮形式の一つであり、基本的にはブラウザで直接表示することはありません (URL
を指定してダウンロードが始まるのは正常です)。

`sitemap.xml` 自体は主に検索エンジン (クローラ) に読ませるのが目的なので、正常に中身が出力されているかを確認したければ、いったん
`sitemap.xml.gz` をローカルに保存してアーカイバで展開すれば `sitemap.xml` を取り出すことができるはずです。

**参考:**  
<https://www.dokuwiki.org/ja:sitemap>

> サイトマップファイルは DokuWiki の cache サブディレクトリに設置されます。 ファイルは
> http://your_domain/dokuwiki/doku.php?do=sitemap という URL でアクセスできます。
> インストールされている PHP で gzip が利用可能かによって、ファイル名は sitemap.xml.gz (gzip が利用可能な場合) または
> sitemap.xml (gzip が利用できない場合) となります。 最近の PHP は gzip サポートが有効な場合が多いので、ほとんどが
> sitemap.xml.gz です。
CC BY-SA 4.0
2021-07-05T03:21:43.143
77981
2021-07-05T03:21:43.143
3060
77977
answer