Re: rewrite и location (apach => nginx)

Igor Sysoev igor на sysoev.ru
Сб Апр 9 12:43:17 MSD 2011


On Thu, Apr 07, 2011 at 04:08:56AM -0400, cul8er wrote:
> Помогите разобраться с конфигом nginx'a. 
> Пришлось отказаться от apache вообще и
> возникли некоторые трудности.
> 
> Вот файл .htaccess
> RewriteEngine  on
> RewriteBase    /scripts/
> RewriteRule ^$ /scripts/
> RewriteRule ^([a-z0-9_]+).php(.*)$ /scripts/$1.php$2
> 
> 
> Вот что делал:
> location / {
> rewrite ^([a-z0-9_]+).php(.*)$ /scripts/$1.php$2 break;
> }
> 
> При переходе на адрес sayt.ru/index.php
> редиректит на
> http://sayt.ru/home/sayt/www/scripts/home/sayt/www/scripts/home/sayt/www/scripts/
> 
> Еще было так
> rewrite ^(.*)$ /scripts/$1 break;
> В таком случае работал только index.php , а
> все ссылки на директории выше не
> работали (в которых расположены css , images
> etc), а другие скрипты из директории scripts
> выдавали "No input file specified."
> 
> Ну и последний способ был:
> location ~* \.(php)$ {
> alias /scripts/;
> }
> 
> Задача банальная, перенаправлять все
> запросы с файлами php на директорию scripts.
> При этом пользователь видит в строке
> браузера http://sayt.ru/file.php, а не
> http://sayt.ru/scripts/file.php

location = / {
    fastcgi_pass    ...
    fastcgi_param   SCRIPT_FILENAME  /home/sayt/www/scripts/index.php;
    include         fastcgi_params;
}

location ~ \.php$ {
    fastcgi_pass    ...
    fastcgi_param   SCRIPT_FILENAME  /home/sayt/www/scripts$uri;
    include         fastcgi_params;
}


-- 
Igor Sysoev
http://sysoev.ru/en/



Подробная информация о списке рассылки nginx-ru