Добрый день,

пытаюсь переписать конфигурацию под форумный движок esoTalk на nginx, так
чтобы избежать использования rewrite, как рекомендует Игорь Сысоев... но не
получается...
Прошу уважаемое сообщество помочь...

Что имеем: 
1. сайт работает по ссылке example.com/forum, ЧПУ имеют вид
/forum/блабла/тынцтынц/.... иногда добавляются параметры ?token=....  и
т.д.
2. .htaccess из коробки для него имеет следующий вид:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>


3. Добился работающего аналога конфигурации nginx:

        location ~ \.(php) {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME
$document_root/$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_script_name;
}

        location / {
                        try_files $uri @esotalk;
}

              location ~*
^/forum/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                      root /var/www/example.com;
              }

        location @esotalk {
             rewrite ^/(.*)$ /forum/index.php/$1 last;
}



Пытаюсь настроить как рекомендовано, без rewrite:


        location / {
                        try_files $uri @esotalk;
}



        location @esotalk {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME
$document_root/forum/index.php;
                fastcgi_param PATH_INFO /index.php$uri; # --->>>????
}


Вот содержимое fastcgi_params:

stcgi_param   QUERY_STRING            $query_string;
fastcgi_param   REQUEST_METHOD          $request_method;
fastcgi_param   CONTENT_TYPE            $content_type;
fastcgi_param   CONTENT_LENGTH          $content_length;

fastcgi_param   SCRIPT_FILENAME         $request_filename;
fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
fastcgi_param   REQUEST_URI             $request_uri;
fastcgi_param   DOCUMENT_URI            $document_uri;
fastcgi_param   DOCUMENT_ROOT           $document_root;
fastcgi_param   SERVER_PROTOCOL         $server_protocol;

fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;

fastcgi_param   REMOTE_ADDR             $remote_addr;
fastcgi_param   REMOTE_PORT             $remote_port;
fastcgi_param   SERVER_ADDR             $server_addr;
fastcgi_param   SERVER_PORT             $server_port;
fastcgi_param   SERVER_NAME             $server_name;

fastcgi_param   HTTPS                   $https if_not_empty;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200;


В итоге получаю что 

1. Адрес сайта меняется на http://example.com/forum// с '//' на конце
2. В исходном коде страниц появляются некорректные ссылки с этими '//'
3. При открытии страниц вручную по правильному url, например '/forum/admin'
выясняется, что ссылки на контент тоже генерятся не правильные но иного
плана, например '/forum/admin/uploads/avatars/1.jpg' вместо
'/forum/uploads/avatars/1.jpg'


При этом rewrite работает отлично. Помогите, пожалуйста, сделать нормальный
конфиг...

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,251208,251208#msg-251208

_______________________________________________
nginx-ru mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить