Nginx 使用路径作为 PHP 参数

Nginx 使用路径作为 PHP 参数

我想使用 URL 路径作为 URL 参数,这就是我想要实现的

每当用户输入example.com/abc时,请求都应自动重定向到,而example.com/?abc无需修改用户端的 URL。目前,nginx 将其视为/abc路径并抛出 404。

此外,现有文件不应被重定向,例如example.com/demo.php应按原样提供。

答案1

您需要使用重写引擎...例如这样(在服务器配置中):

经过一些研究,这对我有用 -

location / {
...
   if (-f $request_filename) {
        break;
    }
    rewrite ^/([^?].*) /?$1 permanent;


}

旧答案 -

server {
    ...
    if (!-f $request_filename){
       rewrite ^/(.*) /?$1;
    }
    
    ...
}

答案2

请尝试以下操作:

server {
    root /example/path;
    server_name example.com;

    try_files $uri $uri/ /index.php?$uri;
}

这将使 nginx 首先检查是否存在与请求 URI 部分匹配的文件或目录,然后 nginx 为其提供服务。

如果不匹配,则将请求传递给/index.phpURI 部分作为查询参数。

相关内容