某些PHP網址正在下載,而不是由Nginx執行。我有一個現有的Web應用程序運行良好。我的任務是在主應用程序的文件夾中添加其他已安裝的應用程序。每個應用程序都有自己的前端控制器index.php
腳本。nginx將一些PHP網址作爲下載而不是執行
對於此設置,我在$document_root/app
內創建了符號鏈接,符號鏈接指向包含index.php
前端控制器的文件夾。
當我導航到大多數URL時,一切正常,主應用程序前端控制器被執行,我得到預期的結果。當我導航到一個不存在的應用程序時,我從nginx獲得404 Not Found
,這是預期的。但是,當我導航到其中一個應用程序時,瀏覽器會下載應用程序前端控制器。
root /my/web/root;
location/{
try_files $uri
/$server_name$uri
/shared$uri
/index.php$is_args$args;
}
location ~ [^/]\.php(/|$) {
disable_symlinks off;
fastcgi_split_path_info ^(.+\.php\b)(.*)$;
fastcgi_param SERVER_NAME $host;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_pass php-fpm;
}
location ~ ^/app/([a-z-]+)(/.*)?$ {
try_files $uri
/app/$1/index.php$is_args$args
=404;
}
URL觸發下載:/app/my-app/
(存在)
URL其中404:/app/foo/
(不存在)
URL,其執行:/foo
試着設置php的位置到'location〜[^ /] \。php(/ | $)' –
同樣的結果.... –