【发布时间】:2018-04-14 22:14:42
【问题描述】:
您好,当从本地主机请求 URL 时,我正在尝试获取请求方法。我已经完成了 URL 重写,因此 http://localhost/API2/products.php?product_id=1 变为 http://localhost/API2/products.php/products/1 结果 $request_method=$_SERVER["REQUEST_METHOD"];应该持有 GET 作为方法。而是每次都为零。
my.htaccess 文件包含以下 url 规则:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^products/?$ products.php [NC,L]
RewriteRule ^products/([0-9]+)/?$ products.php?product_id=$1 [NC,L]
我在 learn.php 中的 curl 命令是:
<?php
$url = 'http://localhost/API2/products';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response_json = curl_exec($ch);
curl_close($ch);
$response=json_decode($response_json, true);
?>
因此,当我运行我的 curl 命令时,它是 learn.php,它既不会向我显示任何数据,因为 $request_method=$_SERVER["REQUEST_METHOD"] 请求方法的值为零。
【问题讨论】:
-
您的问题是从 product.php?product_id=1 到 products/1,但您的重定向代码却相反...?无论如何,如果 URL 的格式为 ?key=value,$_GET 将只包含值。在 /page/key/value 上,$_GET 将没有任何内容。
-
没有问题是当我运行我在 learn.php 文件中的 curl 命令时,它不会进入 switch 案例,例如,如果它的 POST post case 应该运行显示 request_method 没有得到正确的值.
-
或者我猜我的 curl 请求没有被执行。有什么想法吗?