我在ISPConfig3服务器上使用nginx和PHP-FPM。
我在我的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/*中的网址添加.php扩展名。 此规则在地址栏中查找没有.php的文件,但现在下载而不是执行。
由于我使用ISPConfig3,重写.php文件(让它们由PHP-FPM执行)高于所述部分。但我认为添加“最后”应该照顾它。
我还能尝试什么? 谢谢!
答案 0 :(得分:1)
首先,您误解了try_files指令。没有“最后”的论点,它不像你想象的那样有效。请查看文档:{{3}}。这是技术文档,按字面意思读,每个单词都有意义。
要解决您的问题,您必须从try_files
中删除最后两个参数:
try_files $uri $uri.php =404 last;
应替换为:
try_files $uri $uri.php;