2012-12-20 98 views
8

我有一個Nginx HTTP服務器與PHP-FPM設置和幾乎一切正常。我希望能夠去path/to/file,它給我index.php?url=path/to/file,它的確如此。但是,它下載實際的PHP,它不會在瀏覽器中執行它。我不確定是什麼導致了這一點。PHP-FPM和Nginx重寫導致下載

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

你介意發佈nginx配置嗎?聽起來好像路由沒有設置爲在訪問PHP時調用CGI請求。 – plasmid87

+0

我添加了conf文件。 – will

回答

19

嘗試改變

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

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

這理應得到的nginx重新讀取的URI,並進行相應的處理。

+0

非常感謝你的男人!那工作完美。 – will

+0

謝謝soo! – vigo