我正在尝试使用 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;