8

我有一个设置了 PHP-FPM 的 Nginx HTTP 服务器,几乎一切正常。我希望能够去path/to/file它给我index.php?url=path/to/file,它确实做到了。但是,它会下载实际的 PHP,它不会在浏览器中执行它。我不确定是什么原因造成的。

Nginx 配置:

server {
    listen 80;
    server_name sandbox.domain.tld;
    access_log /path/to/domain/log/sandbox.access.log;
    error_log /path/to/domain/log/sandbox.error.log;

    location / {
        root /path/to/sandbox;
        index index.php;

        if (!-e $request_filename) {
            rewrite ^/beta/(.+)$ /beta/index.php?url=$1 break;
        }
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include /usr/local/nginx/conf/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /path/to/sandbox$fastcgi_script_name;
    }
4

1 回答 1

19

尝试改变

rewrite ^/beta/(.+)$ /beta/index.php?url=$1 break;

rewrite ^/beta/(.+)$ /beta/index.php?url=$1 last; break;

这应该让 nginx 重新读取 URI 并相应地处理它。

于 2012-12-20T22:06:56.593 回答