On Fri, Apr 20, 2007 at 01:20:40AM +0400, alex storm wrote:
> Добрый вечер. Если судить по документации
> http://sysoev.ru/nginx/docs/http/ngx_http_ssi_module.html#variables
> должна отрабатываться конструкция
>
> <!--#if expr="${REQUEST_URI} = /" -->
> <!--#include virtual="./a.ssi"-->
> <!--#endif -->
>
> но в логе имеем
> 2007/04/19 23:34:43 [error] 33964#0: *1067 invalid context of SSI
> command: "endif" while sending response to client, client:
> 83.167.100.11, server: www, URL: "/", subrequest:
> "/include/common/menu_bottom.html", host: "www"
>
> Зато отрабатывает такая конструкция:
> <!--#if expr="${REQUEST_URI} = \/" -->
> <!--#include virtual="./a.ssi"-->
> <!--#endif -->
>
> Так и должно быть?
>
> FreeBSD strong 5.3-RELEASE-p5 FreeBSD 5.3-RELEASE-p5 #0: Fri Feb 4
> 19:19:52 MSK 2005 root@strong:/usr/obj/usr/src/sys/STRONG i386
> Собран штатно из портов.
> Configuration summary
> + threads are not used
> + using system PCRE library
> + OpenSSL library is not used
> + md5 library is not used
> + sha1 library is not used
> + using system zlib library
Прилагаемый патч должен исправить эту ошибку.
--
Игорь Сысоев
http://sysoev.ru
Index: src/http/modules/ngx_http_ssi_filter_module.c
===================================================================
--- src/http/modules/ngx_http_ssi_filter_module.c (revision 509)
+++ src/http/modules/ngx_http_ssi_filter_module.c (working copy)
@@ -2376,7 +2376,7 @@
p++;
}
- if (p < last && *p == '/') {
+ if (p < last - 1 && *p == '/') {
if (*(last - 1) != '/') {
goto invalid_expression;
}