由于 NGINX 重写,无法获取 _GET 参数

Can't grab _GET params due to NGINX rewrite

我的 nginx .htaccess 重写规则有问题,我真的需要一些帮助,因为它破坏了我的整个网站。

所以我将我的 ?page= _GET 参数重写为与此类似的东西:website.com/page/ 这确实有效,但是当我尝试获取我的 _GET['page'] 参数时它 returns 一个键为 0 而没有值的数组。

我的 .htaccess 看起来像这样:

nginx 配置

charset utf-8;

    location / {
        if (!-e $request_filename){
            rewrite ^(.*)$ /index.php?page= break;
        }
    }

希望有人能帮帮我!

尝试这样的事情:

$url = $_SERVER['REQUEST_URI'];
$parsed = parse_url($url);
$path = $parsed['path'];
$path_parts = explode('/', $path);
$desired_part = $path_parts[1]; 

这会获取您的 URI 段并将它们分解并放入一个数组中。然后,如果您的示例。com/index.php?page=1 url 成为示例。com/page/1 您可以从 $path_parts 数组中拉出一个,即:

 $desired_output = $path_parts[3]; // Would return 1 in the 'example.com/page/1' example above. 

当您的 url 格式如此时,您将无法获取 $_GET 参数,因为它们已不存在。

我建议 var_dumping 上面的一些变量并尝试一下。