changeset 813:a608349951cf

fix alias without trailing slash
author Igor Sysoev <igor@sysoev.ru>
date Wed, 25 Oct 2006 15:36:11 +0000
parents 3298810a0198
children 760ed037a5a4
files src/http/modules/ngx_http_index_module.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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;