我的服务器上有一个小脚本来捕获POST请求,如下所示:
<?php
$jsonformat = json_encode($_POST);
$jsonFile = fopen("data.json", "w") or die("Unable to open file!");
fwrite($jsonFile, $jsonformat);
fclose($jsonFile);
echo "success";
?>
上面的脚本名为index.php,并放置在http://example.com/data/report/
中我还有另一个用于发送POST请求的脚本,如下所示:
<?php
$url = 'http://example.com/data/report/';
$data = array('key1' => 'value1', 'key2' => 'value2');
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
var_dump($result);
?>
这两个脚本效果很好。但是在另一种情况下,$ url像这样:'http://example.com/data/report'请注意,URL末尾没有“ /”。在末尾没有“ /”的情况下,仍会生成服务器上的json文件,但它为空。
我无法在网址中添加“ /”。它是一个我无法编辑代码的设备,但我知道它的末尾缺少“ /”,因此上面的代码仅是我的示例。我想我已转载了这个问题。
所以我的问题是: -为什么使用“ /”而不是不使用? -我可以在服务器上执行任何操作,因此http://example.com/data/report与http://example.com/data/report/相同
我可以访问服务器上的.htaccess
答案 0 :(得分:0)
您是否有.htaccess
文件或正在重写网址的任何内容?
例如,我在我的一行中像这样:
RewriteRule ^([^\.]+)$ $1.php [L,NC,QSA]
这将从浏览器URL栏中删除文件扩展名。因此,如果我转到mywebsite.com/mydirectory/myfile
,它将自动假定为mywebsite.com/mydirectory/myfile.php
。
如果我去mywebsite.com/mydirectory
,它将尝试将其重写为mywebsite.com/mydirectory.php
,除非我将/
放在末尾,以便它知道它是一个目录。