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:
switch (ch) {
case '/':
r->host_start = p;
r->host_start = p + 1;
state = sw_host;
break;
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_srv_conf_t *cscf;
host = r->headers_in.host->value.data;
len = r->headers_in.host_name_len;
host = r->host_start;
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) {
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,
uintptr_t data)
{
if (r->headers_in.host) {
v->len = r->headers_in.host_name_len;
v->data = r->headers_in.host->value.data;
if (r->host_start == NULL) {
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 {
v->len = r->server_name.len;
v->data = r->server_name.data;
v->len = r->host_end - r->host_start;
v->data = r->host_start;
}
v->valid = 1;