Как в nginx все запросы отдавать в единственный файл?

Приветствую.
Есть задача закрыть доступ для пользователей. Своим разрешать, чужих отправлять на страницы на другом домене с урезанной информацией.
Сейчас ценой миллиона проб и ошибок получилось такое решение, в nginx :
location / {
        root       "%hostdir%";
        rewrite ^(.*)$ /redirect.php;
    }

    location /x/ {
        alias	"%hostdir%";
        try_files $uri /index.php?$args;
        internal;

        rewrite ^/x//list_autors/(.*)$ /index.php?g=$1 last;
        rewrite ^/x//posts/(.*)$ /index.php?q=$1 last; 
    }

В файле redirect.php:
if (!$user) {
        #здесь редиркт если не наш пользовалель
    } else {
        header("X-Accel-Redirect: /x/".$_SERVER["REQUEST_URI"]);
    }

В итоге имеем следующее: ссылки list_autors/* и posts/* работают как нужно, статические файлы (изображения, текстовые) работают как требуется, но если обратиться к файлу, например http://домен/index.php, то файл открывается напрямую, без участия redirect.php.
Не покидает чувство, что что-то делаю неправильно.
Подскажите, пожалуйста, где ошибка или что я делаю неправильно?
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы