我在ISPConfig3服务器上与PHP一起使用nginx。
我在nginx指令中添加了以下重写规则(以便在Pydio中创建更漂亮的链接):
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执行它们)高于指定的部分。但我觉得加上“最后”应该能解决这个问题。
我还能做什么呢?谢谢!
发布于 2014-04-09 08:16:20
首先,您误解了try_files指令。没有“最后”的论点,它不像你想的那样起作用。请查看文档:files。这是技术文档,逐字逐句地读,每个单词都有意义。
要解决问题,必须从try_files中移除最后两个参数
try_files $uri $uri.php =404 last;应改为:
try_files $uri $uri.php;https://stackoverflow.com/questions/22817863
复制相似问题