use host part in URL

This commit is contained in:
Igor Sysoev 2006-11-23 20:20:23 +00:00
parent b1ee81d7cd
commit 95ead46111
3 changed files with 22 additions and 8 deletions

View File

@ -260,7 +260,7 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b)
case sw_schema_slash_slash: case sw_schema_slash_slash:
switch (ch) { switch (ch) {
case '/': case '/':
r->host_start = p; r->host_start = p + 1;
state = sw_host; state = sw_host;
break; break;
default: default:

View File

@ -1385,9 +1385,16 @@ ngx_http_find_virtual_server(ngx_http_request_t *r,
ngx_http_core_loc_conf_t *clcf; ngx_http_core_loc_conf_t *clcf;
ngx_http_core_srv_conf_t *cscf; ngx_http_core_srv_conf_t *cscf;
host = r->host_start;
if (host == NULL) {
host = r->headers_in.host->value.data; host = r->headers_in.host->value.data;
len = r->headers_in.host_name_len; len = r->headers_in.host_name_len;
} else {
len = r->host_end - host;
}
if (vn->hash.buckets) { if (vn->hash.buckets) {
cscf = ngx_hash_find(&vn->hash, hash, host, len); cscf = ngx_hash_find(&vn->hash, hash, host, len);
if (cscf) { if (cscf) {

View File

@ -667,6 +667,8 @@ static ngx_int_t
ngx_http_variable_host(ngx_http_request_t *r, ngx_http_variable_value_t *v, ngx_http_variable_host(ngx_http_request_t *r, ngx_http_variable_value_t *v,
uintptr_t data) uintptr_t data)
{ {
if (r->host_start == NULL) {
if (r->headers_in.host) { if (r->headers_in.host) {
v->len = r->headers_in.host_name_len; v->len = r->headers_in.host_name_len;
v->data = r->headers_in.host->value.data; v->data = r->headers_in.host->value.data;
@ -676,6 +678,11 @@ ngx_http_variable_host(ngx_http_request_t *r, ngx_http_variable_value_t *v,
v->data = r->server_name.data; v->data = r->server_name.data;
} }
} else {
v->len = r->host_end - r->host_start;
v->data = r->host_start;
}
v->valid = 1; v->valid = 1;
v->no_cachable = 0; v->no_cachable = 0;
v->not_found = 0; v->not_found = 0;