Страница 1 из 1

Nginx: Переадресовать папку в один php-файл

Добавлено: 10 окт 2012, 15:13
Tester64
Подскажите пожалуста, Куда и Что нужно добавить в настройки Nginx для вручную (через Настройки-Домены-ручное управление доменами-добавить) добавленый сайт "test.ru" чтобы можно было войдя на "test.ru/user1/...(любое продолжение из папок и файлов)" попать на "test.ru/user1/index.php" ???

p.s. Точно знаю что в Апаче это возможно...

Добавлено: 10 окт 2012, 15:17
Максим
Никуда и ничего не нужно добавлять, по умолчанию и так index.php открывается в любой папке.

Добавлено: 10 окт 2012, 15:23
Tester64
Это и так понятно. А как сделать чтобы "test.ru/user1/file.php", "test.ru/user1/folder1/", "test.ru/user1/folder1/file3.jpg" и "test.ru/user1/folder1/file2.php" все равно попадали на "test.ru/user1/index.php" ??? Что-то вроде защиты содержимого папки через парольную защиту в PHP.

Добавлено: 10 окт 2012, 15:36
Максим
Способов много, просто работают по разному, например:

rewrite .* /index.php;


или так

try_files $uri /index.php;


или так

location ~* ^.*(/|\..*) { 
        try_files $uri $uri/ /index.php;
    }

Добавлено: 10 окт 2012, 20:48
Tester64
Спасибо за подсказку! Почти получилось...

Результат такой:
location /users/ {

# Перекидывает на другой файл без замены строки в броузере (скрытно для пользователя)
# в ключ 'p' ложится путь вроде /users/sdfg/dsfg
try_files $uri /users/index.php?p=$uri;

# Показывает картинку не меняя пути
# try_files $uri /img/announce_unread.gif;

# перекидка пути на картинку. (меняет путь для пользователя)
# rewrite ^(.*)$ /img/no.gif redirect;
}

Увы... успешно показывает если файл существует... и если большая вложеность почему-то отправляет на 404