Nginx:与try_files一起使用重写

时间:2012-11-27 13:45:25

标签: file nginx rewrite

我正试图在rewrite旁边使用try_files。理想情况下,我希望Nginx首先尝试原始URI。如果这不起作用,请尝试控制器/controllers/$1.php。最后,只需重定向到索引。这就是我到目前为止(我已经牺牲了上面提到的理想的简洁顺序):

location / {
  if (-f /controllers/$uri) {
    rewrite ^(.*)$ /controllers/$1.php last;
    return 403;
  }
  try_files $uri $uri/ /index.php;
}

但这似乎不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

location / {
    try_files $uri $uri/ /controllers$uri.php;

    location ~ \.php$ {
        try_files $uri /index.php;

        #
        # fastcgi/proxy_pass php configuration
        #
    }
}