История изменений
Исправление leg0las, (текущая версия) :
Немного поколупавшись, разобрался. Основное, что нужно для работоспособности движка:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]Кусок site из sites-enabled:
...
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
location ~ \.(css|js|jpg|gif)$ {}
autoindex off;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /$1 last;
}
}
...при
rewrite ^(.*)$ /$1 last;получаем ошибку 500, кусок лога нгинкса:
*31 rewrite or internal redirection cycle while processing "////////////blahblahblah"при
rewrite ^(.*)$ /$1 break;получаем 404, файл не найден, в логе:
"<путь к движку>/<ссылка, полученая реврайтом>" failed (2: No such file or directory)т.е. оно обрабатывает ссылку, обрезает ее в соответствии с правилами rewrite и пытается найти файл по этому пути, которого естественно нет.
Комбинации last; + break; не помогли.
Кстати, php-fpm и mpm-worker завелись, в php.ini требовалось cgi.fix_pathinfo=1 вместо «nginxовского» рекомендуемого 0.
Исходная версия leg0las, :
Немного поколупавшись, разобрался. Основное, что нужно для работоспособности движка:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]Кусок site из sites-enabled:
...
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
location ~ \.(css|js|jpg|gif)$ {}
autoindex off;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /$1 last;
}
}
...при
rewrite ^(.*)$ /$1 last;получаем ошибку 500, кусок лога нгинкса:
*31 rewrite or internal redirection cycle while processing "////////////blahblahblah"при
rewrite ^(.*)$ /$1 break;получаем 404, файл не найден, в логе:
"<путь к движку>/<ссылка, полученая реврайтом>" failed (2: No such file or directory)т.е. оно обрабатывает ссылку, обрезает ее в соответствии с правилами rewrite и пытается найти файл по этому пути, которого естественно нет.
Комбинации last; + break; не помогли.