nginx редирект с не сущетвующих директорий файлов.

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

nginx редирект с не сущетвующих директорий файлов.

Непрочитанное сообщение bagas » 2015-11-26 16:22:45

Добрый день.
Подскажите пожалуйста.
Есть сайт, работает хорошо, с недавних пор понадобилось из одной директории сайта сделать редирект на index.php этой диретокрии от несуществующих файлов/директорий в ней.
В апаче все просто, в директории сайта api создаешь .htaccess с таким содержимым.

Код: Выделить всё

Options +FollowSymLinks
IndexIgnore /
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

Код: Выделить всё

server {
        listen 1.0.1.2:80;
        root /usr/local/www/default;
}
server {
        listen 1.0.1.2:80;
        server_name www.ru;
        error_log /var/log/nginx/www.error_log info;
        root /usr/local/www/www.ru/web;
        index index.php index.html index.htm default.html default.htm;
        open_file_cache max=15024 inactive=60s;
        open_file_cache_valid 300s;
        open_file_cache_min_uses 2;
        open_file_cache_errors on;

location / {
	try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
        fastcgi_pass unix:/tmp/www.sock;
        fastcgi_index index.php;
        include fastcgi_params;
	fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
#       fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_ignore_client_abort off;
	try_files $uri =404;
}

location /pma/ {
        alias /usr/local/www/phpMyAdmin/;
        index index.php;
        auth_basic           "closed site";
        auth_basic_user_file /usr/local/.htpasswd;
location ~ \.php$ {
        fastcgi_pass unix:/tmp/www.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_ignore_client_abort off;
        fastcgi_param PHP_ADMIN_VALUE "xcache.cacher=Off";
        fastcgi_param PHP_ADMIN_VALUE "xcache.stat=Off";
        fastcgi_param PHP_ADMIN_VALUE "xcache.optimizer=Off";
   }
}

location /api {
    index index.php;
    try_files $uri $uri/ /api/index.php?$args;

}

location ~ /\.(ht|svn|git) {
        deny all;
}
}
При таком варианте как index,php открывается, но ошибка 500.

Так же пробовал и такой варинат.
При таком вовсе не работает.

Код: Выделить всё

location /api/ {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php;
}
}
Подскажите, как быть. как лучше сделать?
Спасибо за понимание.
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 332
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

nginx редирект с не сущетвующих директорий файлов.

Непрочитанное сообщение Amadeus » 2015-12-03 23:04:35

И снова добрый день).

Давайте по другому.
1) Линк для примера
2) Линк как хотелось бы что бы было.
Нет ничего невозможного