Mój przepisywania Nginx jest pobieranie pliku php

12

Mam następującą regułę przepisywania, którą próbuję:

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

Mam też:

            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;
            }

Normalne pliki php działają dobrze, ale wygląda na to, że moje przekierowanie po prostu pobiera plik php, do którego przekierowuję, zamiast go analizować.

czego mi brakuje? Mam plik do załadowania, zamiast pobierać, umieszczając plik fastcgi w pierwszym bloku lokalizacji, ale nadal nie był on analizowany jako php.

willdanceforfun
źródło

Odpowiedzi:

24

Zmień breakna last.

Ponieważ nowy adres URL będą musiały być przetwarzane przez inny location, trzeba mieć nginx restart przetwarzanie nowego adresu URL napisany od nowa, która jest wykonywana tylko wtedy, gdy używasz lastw rewriteregule.

Pełniejsze wyjaśnienie znajdziesz w dokumentacji .

Michael Hampton
źródło
@TamasKalman Eh? Nie wyglądasz jak OP. Jeśli masz problem, możesz zadać nowe pytanie.
Michael Hampton