Моя перезапись nginx загружает файл php


12

У меня есть следующее правило перезаписи, которое я пытаюсь:

            location / {
                    index index.php index.html;
                    rewrite  ^/test$  /test.php  break;
            }

И у меня также есть:

            location ~ \.php$ {
                    fastcgi_pass    127.0.0.1:9000;
                    include         fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME /home/sites/default$fastcgi_script_name;
                    fastcgi_index   index.php;
            }

Обычные php-файлы работают нормально, но, похоже, мое перенаправление просто загружает php-файл, на который я перенаправляю, а не разбирает его.

Что мне не хватает? Я получил файл для загрузки вместо загрузки, поместив материал fastcgi в первый блок местоположения, но он все равно не анализировался как php.

Ответы:


24

Изменить breakна last.

Поскольку новый URL должен обрабатываться другим пользователем location, необходимо перезапустить обработку nginx для нового переписанного URL, что выполняется только при использовании lastв rewriteправиле.

Смотрите документы для более полного объяснения.


@TamasKalman А? Вы не похожи на ОП. Если у вас возникли проблемы, вы можете задать новый вопрос.
Майкл Хэмптон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.