Index: src/configfile-glue.c =================================================================== --- src/configfile-glue.c (Revision 1527) +++ src/configfile-glue.c (Revision 1528) @@ -279,7 +279,7 @@ } break; } - case COMP_HTTP_REMOTEIP: { + case COMP_HTTP_REMOTE_IP: { char *nm_slash; /* handle remoteip limitations * @@ -354,7 +354,7 @@ l = con->uri.path; break; - case COMP_HTTP_QUERYSTRING: + case COMP_HTTP_QUERY_STRING: l = con->uri.query; break; @@ -381,7 +381,7 @@ } break; } - case COMP_HTTP_USERAGENT: { + case COMP_HTTP_USER_AGENT: { data_string *ds; if (NULL != (ds = (data_string *)array_get_element(con->request.headers, CONST_STR_LEN("User-Agent")))) { l = ds->value; @@ -390,7 +390,21 @@ } break; } + case COMP_HTTP_REQUEST_METHOD: { + const char *method = get_http_method_name(con->request.http_method); + /* we only have the request method as const char but we need a buffer for comparing */ + + buffer_copy_string(srv->tmp_buf, method); + + l = srv->tmp_buf; + + break; + } + case COMP_PHYSICAL_PATH: { + l = con->physical.path; + break; + } default: return COND_RESULT_FALSE; } Index: src/array.h =================================================================== --- src/array.h (Revision 1527) +++ src/array.h (Revision 1528) @@ -86,10 +86,12 @@ COMP_HTTP_URL, COMP_HTTP_HOST, COMP_HTTP_REFERER, - COMP_HTTP_USERAGENT, + COMP_HTTP_USER_AGENT, COMP_HTTP_COOKIE, - COMP_HTTP_REMOTEIP, - COMP_HTTP_QUERYSTRING + COMP_HTTP_REMOTE_IP, + COMP_HTTP_QUERY_STRING, + COMP_HTTP_REQUEST_METHOD, + COMP_PHYSICAL_PATH } comp_key_t; /* $HTTP["host"] == "incremental.home.kneschke.de" { ... } Index: src/response.c =================================================================== --- src/response.c (Revision 1527) +++ src/response.c (Revision 1528) @@ -187,9 +187,9 @@ buffer_to_lower(con->uri.authority); config_patch_connection(srv, con, COMP_HTTP_HOST); /* Host: */ - config_patch_connection(srv, con, COMP_HTTP_REMOTEIP); /* Client-IP */ + config_patch_connection(srv, con, COMP_HTTP_REMOTE_IP); /* Client-IP */ config_patch_connection(srv, con, COMP_HTTP_REFERER); /* Referer: */ - config_patch_connection(srv, con, COMP_HTTP_USERAGENT); /* User-Agent: */ + config_patch_connection(srv, con, COMP_HTTP_USER_AGENT);/* User-Agent: */ config_patch_connection(srv, con, COMP_HTTP_COOKIE); /* Cookie: */ /** their might be a fragment which has to be cut away */ @@ -276,7 +276,7 @@ */ config_patch_connection(srv, con, COMP_HTTP_URL); /* HTTPurl */ - config_patch_connection(srv, con, COMP_HTTP_QUERYSTRING); /* HTTPqs */ + config_patch_connection(srv, con, COMP_HTTP_QUERY_STRING); /* HTTPqs */ /* do we have to downgrade to 1.0 ? */ if (!con->conf.allow_http11) { @@ -628,6 +628,8 @@ } } + config_patch_connection(srv, con, COMP_PHYSICAL_PATH); /* physical-path */ + if (con->conf.log_request_handling) { log_error_write(srv, __FILE__, __LINE__, "s", "-- handling subrequest"); log_error_write(srv, __FILE__, __LINE__, "sb", "Path :", con->physical.path); Index: src/configparser.y =================================================================== --- src/configparser.y (Revision 1527) +++ src/configparser.y (Revision 1528) @@ -419,10 +419,15 @@ { COMP_HTTP_URL, CONST_STR_LEN("HTTP[\"url\"]" ) }, { COMP_HTTP_HOST, CONST_STR_LEN("HTTP[\"host\"]" ) }, { COMP_HTTP_REFERER, CONST_STR_LEN("HTTP[\"referer\"]" ) }, - { COMP_HTTP_USERAGENT, CONST_STR_LEN("HTTP[\"useragent\"]" ) }, + { COMP_HTTP_USER_AGENT, CONST_STR_LEN("HTTP[\"useragent\"]" ) }, + { COMP_HTTP_USER_AGENT, CONST_STR_LEN("HTTP[\"user-agent\"]" ) }, { COMP_HTTP_COOKIE, CONST_STR_LEN("HTTP[\"cookie\"]" ) }, - { COMP_HTTP_REMOTEIP, CONST_STR_LEN("HTTP[\"remoteip\"]" ) }, - { COMP_HTTP_QUERYSTRING, CONST_STR_LEN("HTTP[\"querystring\"]") }, + { COMP_HTTP_REMOTE_IP, CONST_STR_LEN("HTTP[\"remoteip\"]" ) }, + { COMP_HTTP_REMOTE_IP, CONST_STR_LEN("HTTP[\"remote-ip\"]" ) }, + { COMP_HTTP_QUERY_STRING, CONST_STR_LEN("HTTP[\"querystring\"]") }, + { COMP_HTTP_QUERY_STRING, CONST_STR_LEN("HTTP[\"query-string\"]") }, + { COMP_HTTP_REQUEST_METHOD, CONST_STR_LEN("HTTP[\"request-method\"]") }, + { COMP_PHYSICAL_PATH, CONST_STR_LEN("PHYSICAL[\"path\"]") }, { COMP_UNSET, NULL, 0 }, }; size_t i;