error_page 404

Igor Sysoev is at rambler-co.ru
Tue Apr 7 19:48:16 MSD 2009


On Tue, Apr 07, 2009 at 05:35:49PM +0400, Вячеслав (СТYDИЯ АРТ-DИЗАЙН) wrote:

> Добрый день,
>  
> Видимо не передаются значения, на более ранней версии работали.
> Сейчас Nginx 0.7.47
>  
>         location ~* ^/informer/(.+)/([0-9]+)\.png$ {
>              expires 5h;
>              error_page 404 =
> http://www.site.ru/img_informer.php?v=$1&co_id=$2;
>         }
>  
> Возможно такое?

Прилагаемый патч исправляет ошибку.


-- 
Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
Index: src/http/ngx_http_core_module.c
===================================================================
--- src/http/ngx_http_core_module.c	(revision 2004)
+++ src/http/ngx_http_core_module.c	(working copy)
@@ -3875,7 +3875,7 @@
     args.len = 0;
     args.data = NULL;
 
-    if (cv.lengths == NULL) {
+    if (cv.lengths == NULL && uri.data[0] == '/') {
         p = (u_char *) ngx_strchr(uri.data, '?');
 
         if (p) {
Index: src/http/ngx_http_special_response.c
===================================================================
--- src/http/ngx_http_special_response.c	(revision 2004)
+++ src/http/ngx_http_special_response.c	(working copy)
@@ -451,14 +451,14 @@
         return NGX_ERROR;
     }
 
-    if (err_page->value.lengths) {
-        ngx_http_split_args(r, &uri, &args);
+    if (uri.data[0] == '/') {
 
-    } else {
-        args = err_page->args;
-    }
+        if (err_page->value.lengths) {
+            ngx_http_split_args(r, &uri, &args);
 
-    if (uri.data[0] == '/') {
+        } else {
+            args = err_page->args;
+        }
 
         if (r->method != NGX_HTTP_HEAD) {
             r->method = NGX_HTTP_GET;


More information about the nginx-ru mailing list