Моя перезапись 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.

willdanceforfun
источник

Ответы:

24

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

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

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

Майкл Хэмптон
источник
@TamasKalman А? Вы не похожи на ОП. Если у вас возникли проблемы, вы можете задать новый вопрос.
Майкл Хэмптон