Suggestions on how to have error pages based on content type
Zev Blut
zblut at cerego.co.jp
Sat Oct 24 12:30:01 MSD 2009
Hello,
I am wondering if it is possible to serve up error pages based on the
content type.
I.e. I want to show a different 503 error page for html, xml and
javascript content types.
I have tried to do something like this (with Nginx 0.6 series):
---------------------------
server {
listen 80;
charset off;
server_name errortest.localhost;
root /var/www/foobar/nginx_error_test;
if (-f /var/www/foobar/nginx_error_test/maintenance_on.html) {
rewrite ^(/images/.*)$ /images/server-maintenance.png break;
return 503;
break;
}
error_page 503 /system/maintenance;
location = /system/maintenance {
auth_basic off;
root /var/www/foobar/nginx_error_test/system;
if ($content_type ~* javascript) {
rewrite . /system/maintenance.json break;
}
if ($content_type ~* xml) {
rewrite . /system/maintenance.xml break;
}
rewrite . /system/maintenance.html break;
}
if (-f $request_filename) {
break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
}
---------------------------
Unfortunately, this does not work. All that happens is I get the
standard Nginx 503 html error response.
Any ideas if I can do this and if so what I am doing wrong?
Thanks,
Zev
More information about the nginx
mailing list