diff --git a/docs/changes.xml b/docs/changes.xml
index f8745641..66965311 100644
--- a/docs/changes.xml
+++ b/docs/changes.xml
@@ -62,6 +62,13 @@ increased the applications' startup timeout.
+
+
+added a new variable, $dollar, that translates to a literal "$" during
+variable substitution.
+
+
+
diff --git a/src/nxt_http_variables.c b/src/nxt_http_variables.c
index 837ef7b0..5a632b24 100644
--- a/src/nxt_http_variables.c
+++ b/src/nxt_http_variables.c
@@ -7,6 +7,8 @@
#include
+static nxt_int_t nxt_http_var_dollar(nxt_task_t *task, nxt_str_t *str,
+ void *ctx, uint16_t field);
static nxt_int_t nxt_http_var_method(nxt_task_t *task, nxt_str_t *str,
void *ctx, uint16_t field);
static nxt_int_t nxt_http_var_request_uri(nxt_task_t *task, nxt_str_t *str,
@@ -41,6 +43,9 @@ static nxt_int_t nxt_http_var_cookie(nxt_task_t *task, nxt_str_t *str,
static nxt_var_decl_t nxt_http_vars[] = {
{
+ .name = nxt_string("dollar"),
+ .handler = nxt_http_var_dollar,
+ }, {
.name = nxt_string("method"),
.handler = nxt_http_var_method,
}, {
@@ -96,6 +101,15 @@ nxt_http_register_variables(void)
}
+static nxt_int_t
+nxt_http_var_dollar(nxt_task_t *task, nxt_str_t *str, void *ctx, uint16_t field)
+{
+ nxt_str_set(str, "$");
+
+ return NXT_OK;
+}
+
+
static nxt_int_t
nxt_http_var_method(nxt_task_t *task, nxt_str_t *str, void *ctx, uint16_t field)
{