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,8 +1385,15 @@ 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->headers_in.host->value.data; host = r->host_start;
len = r->headers_in.host_name_len;
if (host == NULL) {
host = r->headers_in.host->value.data;
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);

View File

@ -667,13 +667,20 @@ 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->headers_in.host) { if (r->host_start == NULL) {
v->len = r->headers_in.host_name_len;
v->data = r->headers_in.host->value.data; if (r->headers_in.host) {
v->len = r->headers_in.host_name_len;
v->data = r->headers_in.host->value.data;
} else {
v->len = r->server_name.len;
v->data = r->server_name.data;
}
} else { } else {
v->len = r->server_name.len; v->len = r->host_end - r->host_start;
v->data = r->server_name.data; v->data = r->host_start;
} }
v->valid = 1; v->valid = 1;