Welcome! Log In Create A New Profile

Advanced

Конфигурация Nginx без rewrite

June 26, 2014 08:47PM
Добрый день,

пытаюсь переписать конфигурацию под форумный движок 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 работает отлично. Помогите, пожалуйста, сделать нормальный конфиг...
Subject Author Posted

Конфигурация Nginx без rewrite

inliquid June 26, 2014 08:47PM

Re: Конфигурация Nginx без rewrite

Валентин Бартенев June 30, 2014 01:34PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 51
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready