nginx メンテナンスページへリダイレクト 405 Not Allowed. can not post to static page!
ページを返すパス(/action/)にアクセスしたら maintenance.html か ajaxパターンだったら .jsonを返す。
systemディレクトリはキャッシュしないように 0を指定。
messagepackを使っていたので、それようのヘッダーを返すように追加
location /action/ {
rewrite ^/actction/game/.*/\-/.* /system/maintenance.msgpack last;
rewrite ^ /system/maintenance.html last;
return 404;
}
location ^~ /system {
root /home/catwork.mixi/web;
expires 0;
types {
“application/x-msgpack;charset=x-user-defined” msgpack;
application/json json;
}
default_type text/html;
}
rewrite ^/actction/game/.*/\-/.* /system/maintenance.msgpack last;
rewrite ^ /system/maintenance.html last;
return 404;
}
location ^~ /system {
root /home/catwork.mixi/web;
expires 0;
types {
“application/x-msgpack;charset=x-user-defined” msgpack;
application/json json;
}
default_type text/html;
}
と書いたのですが、POSTすると 404 not allowedと出てしまい。static fileにpostできないと。
そこで405に該当ファイルを渡す。
error_page 405=$uri
とすると405がmaintenance.htmlかjsonになるのでOKとなりました。