problem with PCRE matching, utf-8, Greek, rewrite

mat h mat999 at gmail.com
Sat Sep 25 05:43:48 MSD 2010


When attempting to use *UTF8 I always receive.
[emerg]: pcre_compile() failed: (*VERB) not recognized in
"(*UTF8)^/([^/^.]+)(?:/?)(?:index([0-9]*)\.html?)?$" at
"8)^/([^/^.]+)(?:/?)(?:index([0-9]*)\.html?)?$" in
/etc/nginx/sites-enabled/nexusddl.com:85

Yet my PCRE has UTF-8 support, tested it in PHP (both nginx and php
compiled against PCRElib included in debian)

On Thu, Sep 23, 2010 at 7:12 PM, tmanolat <nginx-forum at nginx.us> wrote:
> initially this worked well: (\x{386}-\x{3ff} for Greek chars)
> [code]
>                location ~ "^(/optionalwebappname)?/ProcessImageServlet.*$" {
>                                root   /opt/myfilerepository/;
>                                rewrite ^(.+)$ http://static-dev.myhost.eu/$arg_hotel_id/$th$fn
> break;
>
>                        set $hid '';
>                        set $filename '';
>                        set $th '';
>
>                        if ($request_uri ~ "^(.*)[\\?|&]hotel_id=([0-9]+)(&.*)?$") {
>                                set $hid $2;
>                        }
>                        if ($request_uri ~ "(*UTF8)^(.*)[\\?|&]filename=([%
> ,a-zA-Z0-9\x{386}-\x{3ff}_\-\.]+)(&.*)?$") {
>                                set $fn $2;
>                        }
>                        if ($request_uri ~ "^(.*)[\\?|&]type=th(&.*)?$") {
>                                set $th 'th_';
>                        }
>                        rewrite ^(.+)$ http://static-dev.myhost.eu/$hid/$th$fn break;
>                        access_log  logs/site-pis.log  main;
>                        expires           1h;
>                }
>
> [/code]
>
>
> however, later I found this to work better, including of course utf8
> arguments - you would better check this out first... much more elegant
>
> [code]
>                location ~
> "^(/optionalwebappname)?/ProcessImageServlet.*$" {
>                        set $th '';
>
>                        if ($request_uri ~ "^(.*)[\\?|&]type=th(&.*)?$") {
>                                set $th 'th_';
>                        }
>                        rewrite ^(.+)$
> http://static-dev.myhost.eu/$arg_hotel_id/$th$arg_filename break;
>                        expires           1d;
>                }
> [/code]
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?2,104357,133276#msg-133276
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx
>


More information about the nginx mailing list