try_files解释

我想要一个简单的redirect。 如果REQUEST_URI是“/”,我想redirect到“/ blog /”。 在阅读了一些Pitfall-Docs和BestPractices之后,我猜try_files是用来search的。 但是nginx维基并没有向我澄清,它是如何工作的。 有两个(或一个)path和一个uri? uri似乎是iam寻找的REQUEST_URI。 但我不明白,如何path1(和path2)与它交互。 什么时候评估。 你能帮我明白一点吗?

PS:nginx版本1.0(.8)

有两个(或一个)path和一个uri? uri似乎是REQUEST_URI

不是。它是后备URI。 try_files path1 [path2] uri检查path1path2是否存在。 如果没有,Nginx将redirect到uri

例如: try_files $uri $uri/ /index.php; 相当于:

 if (!-e $request_filename) { rewrite ^ /index.php last; } 

如果你想redirect,那么try_files不是你想要的。 尝试这个:

 rewrite ^/$ /blog/ redirect;