Nginx:使用try_files指令创建漂亮的URL

时间:2011-11-22 05:39:35

标签: url-rewriting nginx

我想在/ widget /文件夹IE中找到任何内容:

www.site.com/widget/1/2/3

重写为

www.site.com/index.php?type=widget&a=1&b=2&c=3

使用try_files指令

小部件文件夹IE之外的任何文件:

www.site.com/cool_stuff.php 

应该不受此重写的影响

经过多次尝试失败后,我无法让它发挥作用。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

try_files接收一个参数列表,表示Nginx应该将请求传递给哪些文件。例如:try_files $uri $uri/ index.php =404通知Nginx应该尝试将请求与$uri匹配(请求的路径作为文件名,重写后)$uri/(请求的路径作为目录,重写后),然后尝试index.php,如果所有其他方法都失败,则返回HTTP 404 Not Found错误代码。另一个例子:将每个请求映射到index.php,无论它的URI如何,都使用try_files index.php =404;

在这种情况下,我认为try_files不是满足您要求的最佳指令。相反,请考虑使用重写规则将/widget/1/2/3转换为/index.php?type=widget&a=1&b=2&c=3