Nginx настройка обработки php с перенаправлением
Бьюсь над настройками nginx.
Есть два php-скрипта:
/web/site/www/index.php /web/site/www/admin.php
Конфиг виртуального хоста такой:
server{
listen *:80;
server_name site.local;
root /web/site/www;
index index.php;
charset_types *;
charset windows-1251;
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php;
}
}
location /admin {
if (!-e $request_filename){
rewrite ^(.*)$ /admin.php;
}
}
location ~ \.php {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE default_charset=windows-1251;
charset windows-1251;
}
location ~/\.ht {
deny all;
}
}
Соответственно, нужно чтобы при запросе site.local/ или site.local/some/path/other/path и т.п. было перенаправление на /web/site/www/index.php
А при запросе site.local/admin или site.local/admin/other/path и т.п. было перенаправление на /web/site/www/admin.php
Так вот на локальной машине все работает как надо.
Выношу на другой сервер (меняю server_name и document_root конечно же) - с запросами типа
site.local/ или site.local/some/path/other/path и т.п.
все ок.
А с запросами типа
site.local/admin или site.local/admin/other/path и т.п.
бывает по разному. Например http://site.local/admin - предлагает скачать admin.php, не выполняет http://site.local/admin/ - обрабатывает верно http://site.local/admin/path/one - обрабатывает верно http://site.local/admin/path/two - снова предлагает скачать.
Уже голову сломал. Подскажите, как правильно настроить обработку php-скриптов с такими редиректами?
Повторюсь, на локальной машине все работает как надо, т.е. сам код сайта рабочий (ранее он под апачем работал, сейчас вот понадобилось его под nginx запустить)