如果文件存在带参数,则nginx重写

时间:2013-10-12 08:43:58

标签: url-rewriting nginx

有一个我根本想不通的基本查询。基本上,我要做的是,

(使用的基本网址为:http://app.domain.tld/link?params=value

首先,如果存在名为link.php的文件,我希望将请求转发给它,同时保留所有存在的参数。

如果不存在参数,则应该在内部('break')重定向到link.php。

如果文件根本不存在,它应该在内部重定向到index.php?p = $ uri,或类似的东西。

现有文件中的保留参数是我最麻烦的。

有没有人有任何指针或配置示例可以实现他们不介意分享的类似内容?

非常感谢,感谢所有花一点时间阅读本文的人。

1 个答案:

答案 0 :(得分:1)

location ^~ /link {
  // do we have any arguments?
  if ($request_uri = $uri) {
    return 302 /link.php;
  }
  // do we have a link.php file?
  try_files /link.php @index;
}

location @index {
  return 302 /index.php?p=$uri;
}

location = /link.php {
  // do something
}