这个问题让我抓狂。我花了至少 30 分钟才解决它
如果我注释掉 try_files,一切都会正常工作,只是我的缓存文件没有被提供(我通过日志文件检查)
如果我有以下网址
/
/name
/name/
它们应该与下面的文件相匹配。
/var/www/domain/cache/index.html
/var/www/domain/cache/name/index.html
/var/www/domain/cache/name/index.html
我如何使用 try_files 检查它们,如果 html 缓存不存在,则继续执行位置块的其余部分。这是任务中的块
location ~ /$ {
#try files here
root /var/www/domain/;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
答案1
尝试这样的事情:
server {
...
location @whatever {
root /var/www/domain/;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
location ~ /$ {
root /var/www/domain/cache/;
try_files $uri $uri/ @whatever;
}
}
如果它有效请告诉我...