我上下看了看,虽然这已经回答了几十次,但我无法让它发挥作用。我正在尝试在 nginx 下运行的 PHP 站点上获取 apache 样式的多视图。在这种情况下,我不关心所有文件扩展名,只关心 php。所以我有我的try_files
指令:
try_files $uri $uri.php $uri/ $1?$args $1.php?$args
这一切都很好而且很花哨,除了当我访问没有 PHP 文件扩展名的 PHP 页面时,PHP 不会被渲染,而是直接转储到浏览器中。我明白了原因(仅当位置以 .php 结尾时才使用 PHP,但我不知道如何修复它。这是我的配置:
server {
listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
root /usr/share/nginx/www;
index index.php index.html index.htm;
server_name inara.thefinn93.com;
location / {
root /usr/share/nginx/www;
try_files $uri $uri.php $uri/ $1?$args $1.php?$args;
}
location ~ ^(.+\.php)$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}