301 redirect with custom content problem
    Maxim Dounin 
    mdounin at mdounin.ru
       
    Fri Nov 30 07:43:24 UTC 2012
    
    
  
Hello!
On Fri, Nov 30, 2012 at 12:53:03PM +1100, Robert Mueller wrote:
> Hi
> 
> I'm trying to setup a permanent redirect from http -> https. As a
> fallback for a small number of users where https is blocked, I'd like to
> show them a message.
> 
> I thought an error_page 301 handler would allow me to do this, but I'm
> having trouble making it work:
> 
>   server {
>     listen *:80 default;
>     rewrite ^ https://example.com$uri permanent;
>   }
> 
>   error_page 301 /foo/bar/301.html;
> 
> Seems to confuse the redirect. It seems to completely replace the
> redirect Location header with foo/bar/301.html rather than actually
> serving that content.
This way you'll end up with two 301 redirects due to rewrite being 
executed again for /foo/bar/301.html.
Try this instead:
    server {
        listen 80 default;
        location / {
            error_page 301 /foo/bar/301.html;
            return 301 "https://example.com$request_uri";
        }
               
        location = /foo/bar/301.html {
            # static
        }
    }
-- 
Maxim Dounin
http://nginx.com/support.html
    
    
More information about the nginx
mailing list