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.
I tried some alternatives like:
error_page 301 @301;
location @301 {
root /foo/bar/;
try_files $uri /301.html;
}
But again, it replaces the Location header adding /301.html on the end
of the redirect hostname rather than actually serving the 301.html
content.
Is there a reliable way to return custom content for a 301 redirect in a
way that doesn't affect the redirect location itself? I'm using nginx
1.2.4.
--
Rob Mueller
robm@fastmail.fm
on 2012-11-30 02:53
on 2012-11-30 08:44
Hello! On Fri, Nov 30, 2012 at 12:53:03PM +1100, Robert Mueller wrote: > 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
on 2012-12-04 06:29
> This way you'll end up with two 301 redirects due to rewrite being > executed again for /foo/bar/301.html. Ah right, makes sense. > location = /foo/bar/301.html { > # static > } > } Great, that worked, thanks. Rob
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
Log in with Google account | Log in with Yahoo account
No account? Register here.