Nginx动态请求

时间:2016-06-09 20:13:28

标签: php nginx nginx-location

我在example.com/fruit.php有一个页面。该页面使用ISSET()来解析参数以决定向用户显示的内容。例如,example.com/fruit.php?name=apple&color=red。这很容易做到,但我更愿意像这样来到页面:

mysite.com/fruit/apple/red

由于我知道只有两个参数,我可以轻松解析网址以构建我的网页。但是,我如何配置nginx,以便将example.com/fruit的任何请求与url后面的任何内容发送到fruit.php,以便页面本身可以解析url。以下是我在我的位置块中尝试过的内容:

location ~ /fruit {
return 301 https://www.example.com/fruit.php;
} 

这对我来说并不起作用,而且我已经花了一天时间试图解决这个问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为你正在接近这个错误。

如果您正在尝试使用Web服务器创建和维护路由,那么您不可避免地会遇到问题,例如每次部署时必须在生产服务器上循环您的Web服务器服务。

除此之外,您还将Web服务器配置与应用程序紧密耦合,这不是最好的选择。

我建议使用某种路由器包来帮助维护项目的路由。

看看这方面的答案 stackoverflow question

然后,您可以配置Web服务器,使其解析为项目中的index.php文件,然后使用路由器处理应用程序中路径的逻辑。

看看你的nginx配置最终会是什么样子:stackoverflow about nginx routing using index.php as an entry point for your requests.