server_name regexp

Anton Koldaev koldaevav на gmail.com
Пн Сен 20 09:51:36 MSD 2010


Привет
Имею вот такой server_name:

> # Любой поддомен, кроме исключенных
>   server_name ~(?<!^one|^two|^three|^www)\.sitename\.ru$;
>

php-файлы проксируются на php-fpm:

>   location ~ \.(php|php4|php5|phtml)$ {
>     fastcgi_pass 127.0.0.1:9000;
>     try_files $fastcgi_script_name =404;
>
>     fastcgi_param SERVER_NAME $server_name;
>
...
>

Проблема в том, что в SERVER_NAME попадает именно регексп, а не, например,
one.sitename.ru.
Реврайт, после которого фейлится:

> 2010/09/20 09:42:20 [notice] 19176#0: *24 rewritten data:
> "/urlrewriteprepend.php", args: "logout=yes&CODE=alozovaya", client:
> 94.198.48.35, server: ~(?<!^one|^two|^three|^www)\.sitename\.ru$, request:
> "GET /blogs/one/index.php?logout=yes&CODE=one HTTP/1.1", host: "
> one.sitename.ru", referrer: "http://one.sitename.ru/"
>

Что отдается в браузере:

> Server not found
> Firefox can't find the server at ~(.
>

В адресной строке:

> http://
> ~%28/?%3C!^one|^two|^three|^www%29\.sitename\.ru$/?logout=yes&CODE=one
>

Как через fastcgi_param передать верный servername?

-- 
Best regards,
Koldaev Anton
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100920/368d8b9a/attachment.html>


Подробная информация о списке рассылки nginx-ru