]> git.kaiwu.me - nginx.git/commitdiff
fix alias without trailing slash
authorIgor Sysoev <igor@sysoev.ru>
Wed, 25 Oct 2006 15:36:11 +0000 (15:36 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 25 Oct 2006 15:36:11 +0000 (15:36 +0000)
src/http/modules/ngx_http_index_module.c

index 3af802663f5eb8a70326b49038e165060f0faf3f..4df57f9ce44a3877db24ff557740f2533dfc9d28 100644 (file)
@@ -315,10 +315,14 @@ ngx_http_index_handler(ngx_http_request_t *r)
 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_t *r, ngx_http_index_ctx_t *ctx)
         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_t *r, ngx_http_index_ctx_t *ctx)
         return NGX_HTTP_INTERNAL_SERVER_ERROR;
     }
 
-    *(ctx->index.data - 1) = '/';
+    *(ctx->index.data - i) = c;
 
     if (ngx_is_dir(&fi)) {
         return NGX_OK;