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