nginx rewrite ของฉันกำลังดาวน์โหลดไฟล์ 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

เปลี่ยนไปbreaklast

เนื่องจาก URL ใหม่จะต้องถูกประมวลผลโดยที่แตกต่างกันlocationคุณจะต้องมีการเริ่มต้นการประมวลผล nginx สำหรับ URL ที่เขียนใหม่ซึ่งจะดำเนินการเฉพาะเมื่อคุณใช้lastในrewriteกฎ

ดูเอกสารสำหรับคำอธิบายแบบเต็ม


@TamasKalman ใช่มั้ย คุณดูไม่เหมือน OP หากคุณมีปัญหาคุณสามารถถามคำถามใหม่ได้
Michael Hampton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.