Nginx:将所有不存在的请求重定向到index.php

时间:2012-12-22 05:52:24

标签: php url-rewriting nginx

我正在从Apache迁移到Nginx。

我目前正在使用自定义内容管理解决方案,该解决方案利用SERVER ['request_uri']来处理路由。

我要做的是重定向所有不存在的文件&目录请求/index.php,而不是更新客户端uri。但是,当文件存在时,我想要返回它。

示例网址为: localhost / content / page / 1< - 应该将$ _SERVER ['request_uri']填充为/ content / page / 1 要么 localhost / public / script / exists.js< - 应作为实际文件返回。

1 个答案:

答案 0 :(得分:10)

您需要在nginx vhost 文件中添加location /块或更新当前的location /块。

如果找不到文件或目录,这会将所有请求重定向到index.php

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

这是在您的服务器指令内部,有关更多信息,请访问http://wiki.nginx.org/HttpCoreModule

修改vhost文件后,您需要重新启动nginx

注意:服务器块的try_files指令已添加到0.7.44