# HG changeset patch # User Igor Sysoev # Date 1161790571 0 # Node ID a608349951cf2d2e4d3c358916efd62736ae3c60 # Parent 3298810a0198a3a4d2664fa52cc330a30281225f fix alias without trailing slash diff --git a/src/http/modules/ngx_http_index_module.c b/src/http/modules/ngx_http_index_module.c --- a/src/http/modules/ngx_http_index_module.c +++ b/src/http/modules/ngx_http_index_module.c @@ -315,10 +315,14 @@ ngx_http_index_handler(ngx_http_request_ static ngx_int_t ngx_http_index_test_dir(ngx_http_request_t *r, ngx_http_index_ctx_t *ctx) { + u_char c; + ngx_uint_t i; ngx_err_t err; ngx_file_info_t fi; - *(ctx->index.data - 1) = '\0'; + c = *(ctx->index.data - 1); + i = (c == '/') ? 1 : 0; + *(ctx->index.data - i) = '\0'; ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "http index check dir: \"%s\"", ctx->path.data); @@ -328,7 +332,7 @@ ngx_http_index_test_dir(ngx_http_request err = ngx_errno; if (err == NGX_ENOENT) { - *(ctx->index.data - 1) = '/'; + *(ctx->index.data - i) = c; return ngx_http_index_error(r, ctx, err); } @@ -338,7 +342,7 @@ ngx_http_index_test_dir(ngx_http_request return NGX_HTTP_INTERNAL_SERVER_ERROR; } - *(ctx->index.data - 1) = '/'; + *(ctx->index.data - i) = c; if (ngx_is_dir(&fi)) { return NGX_OK;