Forum: NGINX "msie_padding on" doesn't work?

Posted by Lorenzo Raffio (Guest)
on 2012-12-26 16:55
(Received via mailing list)
msie_padding is set to on by default (and I didn't change it). Today I
added this line to my location php block:
    if ($http_user_agent ~ "MSIE 6" ) {
      return 403 "Browser not supported. Please update or change to 
another
one.";
    }

So now it is:
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    if ($http_user_agent ~ "MSIE 6" ) {
      return 403 "Browser not supported. Please update or change to 
another
one.";
    }
}

It works (with curl and a IE6 user-agent I get my custom error message),
the problem is that IE6 (real browser) displays its default error page
(because my message is < of 512 bytes). But msie_padding on should "fix"
that, am I wrong?

If I change the error to something longer it works! For example I set 
one
(in italian, sorry): "Internet Explorer 6.0 non e' supportato. Per poter
visualizzare il sito aggiorna ad una versione successiva o installa un
browser alternativo (Google Chrome, Mozilla Firefox, Opera ...)." and it
displays my error.
Posted by Igor Sysoev (Guest)
on 2012-12-26 17:00
(Received via mailing list)
On Dec 26, 2012, at 19:54 , Lorenzo Raffio wrote:

>     fastcgi_pass unix:/var/run/php5-fpm.sock;
>     if ($http_user_agent ~ "MSIE 6" ) {
>       return 403 "Browser not supported. Please update or change to another 
one.";
>     }
> }
>
> It works (with curl and a IE6 user-agent I get my custom error message), the 
problem is that IE6 (real browser) displays its default error page (because my 
message is < of 512 bytes). But msie_padding on should "fix" that, am I wrong?

No, nginx adds this padding only to its internal messages.

> If I change the error to something longer it works! For example I set one (in 
italian, sorry): "Internet Explorer 6.0 non e' supportato. Per poter visualizzare 
il sito aggiorna ad una versione successiva o installa un browser alternativo 
(Google Chrome, Mozilla Firefox, Opera ...)." and it displays my error.


You create page for MSIE6:
error_page  402 = /msie6.html;

and return 402 error:

if ($http_user_agent ~ "MSIE 6") {
    return 402;
}
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.