首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nginx: PHP-重写后正在下载文件

nginx: PHP-重写后正在下载文件
EN

Stack Overflow用户
提问于 2014-04-02 16:44:17
回答 1查看 1.3K关注 0票数 0

我在ISPConfig3服务器上与PHP一起使用nginx。

我在nginx指令中添加了以下重写规则(以便在Pydio中创建更漂亮的链接):

代码语言:javascript
复制
location ~ \.php$ {
        try_files @php;
    }

location @php {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9026;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
    }

proxy_set_header X-Accel-Mapping /var/www/XXXYYY.com/pydio/data/=/data/;

location /conf/       { deny all; }
location /data/       { internal; }

location /data/public/ {
    try_files $uri $uri.php =404 last;
}

我希望pydio.XXXYYY.com/data/public/*中的URL添加一个..php扩展名。此规则在地址栏中查找没有.php的文件,但现在它们被下载而不是执行。

由于我使用ISPConfig3,所以对.PHP-文件的重写(让PHP执行它们)高于指定的部分。但我觉得加上“最后”应该能解决这个问题。

我还能做什么呢?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-09 08:16:20

首先,您误解了try_files指令。没有“最后”的论点,它不像你想的那样起作用。请查看文档:files。这是技术文档,逐字逐句地读,每个单词都有意义。

要解决问题,必须从try_files中移除最后两个参数

代码语言:javascript
复制
try_files $uri $uri.php =404 last;

应改为:

代码语言:javascript
复制
try_files $uri $uri.php;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22817863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档