REST API POST数据未到达index.php

时间:2018-09-28 02:17:30

标签: php rest api redirect post

我正在尝试为我的REST API构建“干净” URL。

在/test/index.php中,我有以下代码:

<?php

var_dump($_POST);

我正在使用Postman在此处发布数据:

http://localhost:8888/test/index.php

它按预期返回以下内容:

array(1) {
  ["test"]=>
  string(14) "1"
}

当我使用没有index.php的邮递员时:

http://localhost:8888/test

array(0) {
}

即使到达index.php,数据也会被删除。

现在真正奇怪的是,如果我发布到:

http://localhost:8888/test/

array(1) {
  ["test"]=>
  string(14) "1"
}

有效。我不希望在结尾加上斜杠。

现在要解决此问题,我已将其添加到我的.htaccess文件中:

RewriteRule test test/index.php [NC,P]

如本文所建议:

Is it possible to redirect post data?

那仍然没有用。我想念什么?

1 个答案:

答案 0 :(得分:0)

要从URL中隐藏index.php,您需要利用mod_rewrite。将其放在根.htaccess文件中,但也可以在apache配置文件中(例如000-default)。

mod_rewrite必须与PHP一起启用,并且这将适用于高于5.2.6的PHP版本。 (sudo a2enmod重写)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

除非您使用自定义服务器,否则没有其他方法可以在不重写url的情况下编辑调度程序。