nginxで拡張子のないファイルのContent-Typeを指定する

nginxで拡張子のないファイルへアクセスした場合は「application/octet-stream」としてファイルのダウンロードが始まりますが、拡張子がない場合にHTMLとして扱いたい場合は下記のような設定をします。

server {
    ...
    location / {
        default_type text/html;
    }
}

サーバー上のファイルには拡張子があってURLで拡張子を省略したい場合は下記の設定になります。 元のURL→末尾にスラッシュを補完→末尾に.html,.htmを補完 の順に試行して最終的にどれも見つからない場合は404エラーを返します。

server {
    ...
    location /past_archives/page/2015/ {
        index index.html index.htm;
        try_files $uri $uri/ $uri.html $uri.htm =404;
    }
}

参考サイト: http://stackoverflow.com/questions/13509050/how-to-specify-mimetype-of-files-with-no-extension-in-nginx-config

http://dev.hinaloe.net/2014/07/nginx-extension-less-call/