За последние 24 часа нас посетили 58964 программиста и 1772 робота. Сейчас ищут 915 программистов ...

ngnix все запросы в index.php

Тема в разделе "PHP для новичков", создана пользователем pircul, 13 июл 2015.

  1. pircul

    pircul Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    100
    Симпатии:
    0
    Не могу до конца заставить отправлять все запросы которые запрашивают не файлы в index.php используя ngnix.
    Составил такой локейшн
    Код (Text):
    1.  
    2. location / {
    3.     root       "%hostdir%"; # это переменная OpenServer. Указывает на корневую директорию
    4.     try_files $uri $uri/ /index.php;
    5.     index      index.php;
    6. }
    Запросы которые не запрашивают файлы успешно отправляются в index.php. Но если запросить site.ru/file.php тогда получаю 404 ошибку ngnix. То есть когда в адресе присутствует .php и это не index.php, запросы НЕ перенаправляются в index.php
    Как решить? Пробовал сделать error_page 404 /index.php?$args; это помогло но в этом случае перестал работать редирект header("Location: http://google.ru"). Скрипт отрабатывает но редирект не происходит.
    location ~ \.php$ стандартный от OpenServer. Если нужно его описание я его напишу тут.

    Добавлено спустя 19 минут 19 секунд:
    Нашел решение. Нужно было вместо error_page 404 /index.php?$args написать error_page 404 = /index.php?$args
    Но вот не знаю правильный ли путь выбрал. И не ясно одно, почему когда идет обращение к не существующему файлу file.php такой запрос не перенаправляется в index.php? В локейшене ведь сказано не файл, не директория - идем в index.php. А тут почему то надо прикрутить дополнительно error_page. Чем это объясняется?