Я переместил сайт Yii 1 на новый сервер Ubuntu с NGINX, и все работает отлично, за исключением очищенных URL-адресов без части index.php. Например, страница http: // ****/site/о переадресации на главную страницу, но http: //****/index.php/site/about показывает правильную страницу. Мой текущий файл конфигурации блока сервера содержит данные правила местоположение:Yii remove index.php from url on NGINX
location/{
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
Я также попытался с помощью
try_files $uri $uri/ /index.php$uri?$args;
, но в конечном итоге с петлей перенаправления.
Кажется, что переписать /index.php$uri?$args никогда не проверяет проверку $ uri.
В Yii конфигурации У меня есть
'urlManager' => array (
'urlFormat' => 'path',
'showScriptName' => false,
'caseSensitive' => false,
'rules' => array (
'<public_url:about>'=>'site/about',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
....
Таким образом, вопрос в том, как сделать HTTP: // ****/сайт/о шоу той же странице, как HTTP: // ****/индекс. php/site/о запросе?
Заранее спасибо.
см. Http://www.yiiframework.com/doc/guide/1.1/en/quickstart.apache-nginx-config –