以已知扩展名结尾的重写失败,为什么?

时间:2014-07-14 07:51:39

标签: nginx

我有一个重写,将所有内容路由到我的index.php文件,但是,如果网址以已知扩展名结尾(例如:.gif.png),则会失败并给出一个nginx 404错误页面。怎么样?

我的重写看起来像这样:

location / {
    try_files $uri $uri/ /index.php?$args;
}

此网址正常domain.com/attachment/53c386a876a56_ets2_00000,正在使用index.php文件。

这不起作用domain.com/attachment/53c386a876a56_ets2_00000.png并且给出了404 Not Found nginx错误。

为什么当我在网址中有已知的扩展名时,它是否会被发送到我的index.php

1 个答案:

答案 0 :(得分:0)

我有一个location块来获取这些扩展,从而打破了重写。

location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js) {
       add_header        Cache-Control public;
       add_header        Cache-Control must-revalidate;
       expires           7d;
       access_log off;
}

我评论说它现在可以正常工作。

谢谢@Tan Hong Hat。