linux - 如果使用 NGINX 找不到文件,如何重写

标签 linux url-rewriting nginx rewrite

我在 Ubuntu 服务器上使用 NGINX。我有这个虚拟主机:

server {
        listen        80;
        server_name   *.example.com;
        root          /home/nginx/vhosts/example.com/web;

        location / {
                index     index.php;
        }

        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9001;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        /etc/nginx/fastcgi_params;
        }
}

我必须添加一条规则...

如果找不到文件/目录,请使用 index.php

如何更改我的服务器 {} 指令?

谢谢!

最佳答案

您可以使用 try_files 指令:

try_files $uri $uri/ /index.php

这将首先尝试查找文件和目录,如果这不起作用,它将使用 index.php。

另见 front controller nginx wiki 上的部分。

关于linux - 如果使用 NGINX 找不到文件,如何重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5920081/

相关文章:

linux - 有没有办法按列 'uniq'?

java - Java线程和操作系统线程的区别?

php - 使用 Nginx 在 OpenCart 上的多个商店和子域上启用 SEO URL

linux - nginx location deny by file extension 语法

nginx - pgadmin4 无法在 nginx 后面的特定位置工作

java - 是否可以添加类似 shebang 的东西来使 jar 文件在 Windows 上可执行?

java - 启动 jetty 服务器时出现 NoClassDefFoundError

.htaccess - 为 admin.magentostore.com(不是/admin)的 Magento 创建一个管理 url

mod-rewrite - 添加文件的斜杠和剪切扩展名(nginx 规则)

nginx 不服务我的 error_page