Nginx 重写下载 php 文件而不是执行

Nginx 重写下载 php 文件而不是执行

我正在尝试使用 nginx 重写一些链接,但是 php 文件被下载而不是执行,如果我在浏览器中运行 php 文件则可以正常工作,因此不存在 fastcgi 问题。

我已经在这里检查了其他类似的问题,但没有什么帮助。

我的 nginx.conf 文件

....
location / {

location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
        expires     max;
    }

    location ~ [^/]\.php(/|$) {

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_pass    127.0.0.1:9002;
        fastcgi_index   index.php;
        include         /etc/nginx/fastcgi_params;
    }
}

location ~* "/\.(htaccess|htpasswd)$" {
    deny    all;
    return  404;
}


location /contact {
rewrite ^/contact/?$ /contact.php last;
}

我需要将 contact.php 重写为 /contact 但是不起作用。

我也尝试过:

 location /contact {
rewrite ^/contact?$ /contact.php last;
}

location /contact {
rewrite ^/contact$ /contact.php last;
}

location /contact {
rewrite ^/contact?$ /contact.php break;
}

什么都没起作用。我以前没有遇到过这个问题……

答案1

我发现了问题,我只是替换了:

location /contact {
rewrite ^/contact?$ /contact.php last;
}

rewrite ^/contact? /contact.php last;

相关内容