19 Июль, 2016

Чиним роутер Cockpit CMS под FastCGI

Привет! Не факт что это кому то еще понадобится кроме меня, но записать решение стоит. Итак, есть CockpitCMS в которой из коробки есть микрофреймворк Lime используюийся для роутинга и рендера вьюх. Так вот, если у вас PHP работает через FastCGI вся эта балалайка работать не будет.

Проблема в том что в роутере используется $_SERVER['PATH_INFO'] которая в данном случае будет пуста. Я починил вот так:

index.php

...

include_once('cockpit/bootstrap.php');

$_SERVER["PATH_INFO"] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); //чиним этой строкой

$app = new Lime\App();

$app->bind('/', function () use ($app) {
...

Заодно также добавил фикс в .htaccess убираюший лишние слеши:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
Home