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

Вопросы по работе с Apache, Nginx, PHP, MySQL, Sendmail и т.д.
Tester64
Сообщения: 5
Зарегистрирован:
10 окт 2012, 14:22

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

Tester64 » 10 окт 2012, 15:13

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

p.s. Точно знаю что в Апаче это возможно...
Аватара пользователя
Максим
Сообщения: 5380
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 10 окт 2012, 15:17

Никуда и ничего не нужно добавлять, по умолчанию и так index.php открывается в любой папке.
Tester64
Сообщения: 5
Зарегистрирован:
10 окт 2012, 14:22

Tester64 » 10 окт 2012, 15:23

Это и так понятно. А как сделать чтобы "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.
Аватара пользователя
Максим
Сообщения: 5380
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 10 окт 2012, 15:36

Способов много, просто работают по разному, например:
rewrite .* /index.php;
или так
try_files $uri /index.php;
или так
location ~* ^.*(/|\..*) { 
        try_files $uri $uri/ /index.php;
    }
Tester64
Сообщения: 5
Зарегистрирован:
10 окт 2012, 14:22

Tester64 » 10 окт 2012, 20:48

Спасибо за подсказку! Почти получилось...

Результат такой:
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
Ответить