On 2016-04-14 Tim Baumgard <[email protected]> wrote: > According to convention and httpd.conf(5), the $DOCUMENT_URI macro for > FastCGI calls should expand to the request path instead of the path > alias.
FastCGI / CGI is poorly documented. As far as convention goes, at least
nginx uses the rewritten url, too:
$document_uri
same as $uri
$uri
current URI in request, normalized
The value of $uri may change during request processing, e.g. when
doing internal redirects, or when using index files.
This behavior has the effect that the CGI script will know the
"canonical" url of the requested ressource, not an alias that the
client happened to request. We call the rewritten, canonical url "alias"
in our code, so that might be confusing.
If you still think httpd is showing unwanted behaviour, please provide
an example.
> This isn't a major issue because only "block return code uri"
> options make use of path aliases at the moment, and those use a
> separate macro-expansion function, server_expand_http(), which
> correctly expands $DOCUMENT_URI.
>
> Index: server_fcgi.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/httpd/server_fcgi.c,v
> retrieving revision 1.67
> diff -u -p -r1.67 server_fcgi.c
> --- server_fcgi.c 23 Nov 2015 20:56:15 -0000 1.67
> +++ server_fcgi.c 14 Apr 2016 03:41:30 -0000
> @@ -254,7 +254,7 @@ server_fcgi(struct httpd *env, struct cl
> errstr = "failed to encode param";
> goto fail;
> }
> - if (fcgi_add_param(¶m, "DOCUMENT_URI", alias,
> + if (fcgi_add_param(¶m, "DOCUMENT_URI", desc->http_path,
> clt) == -1) {
> errstr = "failed to encode param";
> goto fail;
>
--
http://gmerlin.de
OpenPGP: http://gmerlin.de/christopher.pub
2779 7F73 44FD 0736 B67A C410 69EC 7922 34B4 2566
pgphn3GpSMWJ_.pgp
Description: OpenPGP digital signature
