Viết lại nginx của tôi đang tải xuống tệp php


12

Tôi có quy tắc viết lại sau đây tôi đang thử:

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

Và tôi cũng có:

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

Các tệp php bình thường hoạt động tốt, nhưng có vẻ như chuyển hướng của tôi chỉ đang tải xuống tệp php mà tôi đang chuyển hướng, thay vì phân tích cú pháp.

Tôi đang thiếu gì? Tôi đã tải tệp lên, thay vì tải xuống bằng cách đặt nội dung fastcgi vào khối vị trí đầu tiên, nhưng nó vẫn không phân tích thành php.

Câu trả lời:


24

Thay đổi breakthành last.

Bởi vì địa chỉ URL mới sẽ cần phải được xử lý bởi một khác nhau location, bạn cần phải có nginx khởi động lại chế biến cho URL viết lại mới, mà chỉ được thực hiện khi bạn sử dụng lasttrong các rewritequy tắc.

Xem các tài liệu cho một lời giải thích đầy đủ hơn.


@TamasKalman Ơ? Bạn không giống OP. Nếu bạn đang gặp vấn đề, bạn có thể hỏi một câu hỏi mới.
Michael Hampton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.