微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx将一些PHP URL作为下载而不是执行

一些PHP URL正在被下载,而不是由Nginx执行。 我有一个现有的Web应用程序运行良好。 我的任务是在主应用程序的文件夹中添加其他已安装的应用程序。 每个应用程序都有自己的前端控制器index.PHP脚本。

对于这个设置,我在$document_root/app里面创build了符号链接,符号链接指向一个包含index.PHP前端控制器的文件夹。

当我导航到大多数URL时,一切正常,主要应用程序前端控制器被执行,我得到预期的结果。 当我导航到一个不存在的应用程序时,我得到了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 ^(.+.PHPb)(.*)$; 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/([az-]+)(/.*)?$ { try_files $uri /app/$1/index.PHP$is_args$args =404; }

触发下载的URL: /app/my-app/ (exists)

404s: /app/foo/ (不存在)

执行: /foo URL

编辑PHP脚本来打开文件中的URL

PlayFramework在http中代替httpS返回绝对url?

使用Nginx来绘制rails应用程序

重写dynamicMagentourl

将单页https重写为http Nginx

$ sent_http_content_language不起作用

Rails 3.2.2在用capistrano部署后在样式表和js资产上得到了404

PHP代码显示在源代码

Nginx的proxy_no_cache和proxy_cache_bypass

Nginx服务器上使用Yii returnUrl

.PHP文件需要由location ~ [^/].PHP(/|$)块处理。 你有一个通用的文档根,这使得事情变得更简单。

不过,请查看关于location指令的文档 。

你会看到正则表达式的位置被认为是顺序的 ,第一个匹配的位置将被用来处理请求。

总之,如果你希望你的.PHP文件被正确处理,你需要把location ~ [^/].PHP(/|$)块放在任何其他冲突的正则表达式位置之前

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐