will request_uri get passed from cookieless server to 403 page on main server?

Ian Evans ianevans at digitalhit.com
Tue Nov 19 09:13:30 UTC 2013


On 18/11/2013 6:26 PM, Francis Daly wrote:

Thanks for your response.

> (You can possibly avoid that if you use something like
> .../dhe403.shtml/$request_uri and handle it appropriately on the far
> side.)

Ok.

>
> It would seem easier to either proxy_pass or fastcgi_pass to the old
> server, in an error_page 403 location on the new server, if you're happy
> to have that level of not-just-static involved (and not happy to run
> the full php suite on the new server).
>
> That way, the browser would get one redirect to the intended destination
> instead of one to an intermediate location first.

Just to clarify, the two "servers" are on same physical box with the 
same document root, just migrating to a better host. So php is 
installed. I'm just creating two server blocks so that the images will 
be served on a cookieless sub-domain for web performance reasons, i.e.:

server {
server_name www.example.com;
...
}

server {
server_name static.example.com;
...
}

On the www block, I currently have this 403 block:

error_page 403 = /dhe403.shtml;
location = /dhe403.shtml {
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_cache  off;
}

So I could add that to my static block as well?

Also, I'd have this "rewrite anything not static" location in the static 
server:

if ($request_uri !~* 
"\.(gif|js|jpg|jpeg|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|mov)$") 
{
rewrite ^(.*) http://www.example.com$1 permanent;
break;
}

If I put the 403 location before it, will it still redirect any 
non-static files EXCEPT for the dhe403.shtml?

Thanks!



More information about the nginx mailing list