|
|
|
@ -2838,7 +2838,11 @@ static handler_t scgi_check_extension(server *srv, connection *con, void *p_d, i
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* the rewrite is only done for /prefix/? matches */
|
|
|
|
|
if (extension->key->ptr[0] == '/' &&
|
|
|
|
|
if (host->fix_root_path_name && extension->key->ptr[0] == '/' && extension->key->ptr[1] == '\0') {
|
|
|
|
|
buffer_copy_string(con->request.pathinfo, con->uri.path->ptr);
|
|
|
|
|
con->uri.path->used = 1;
|
|
|
|
|
con->uri.path->ptr[con->uri.path->used - 1] = '\0';
|
|
|
|
|
} else if (extension->key->ptr[0] == '/' &&
|
|
|
|
|
con->uri.path->used > extension->key->used &&
|
|
|
|
|
NULL != (pathinfo = strchr(con->uri.path->ptr + extension->key->used - 1, '/'))) {
|
|
|
|
|
/* rewrite uri.path and pathinfo */
|
|
|
|
@ -2847,10 +2851,6 @@ static handler_t scgi_check_extension(server *srv, connection *con, void *p_d, i
|
|
|
|
|
|
|
|
|
|
con->uri.path->used -= con->request.pathinfo->used - 1;
|
|
|
|
|
con->uri.path->ptr[con->uri.path->used - 1] = '\0';
|
|
|
|
|
} else if (host->fix_root_path_name && extension->key->ptr[0] == '/' && extension->key->ptr[1] == '\0') {
|
|
|
|
|
buffer_copy_string(con->request.pathinfo, con->uri.path->ptr);
|
|
|
|
|
con->uri.path->used = 1;
|
|
|
|
|
con->uri.path->ptr[con->uri.path->used - 1] = '\0';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|