由于 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 上面的一些变量并尝试一下。
我的 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 上面的一些变量并尝试一下。