我正在尝试为我的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的邮递员时:
array(0) {
}
即使到达index.php,数据也会被删除。
现在真正奇怪的是,如果我发布到:
array(1) {
["test"]=>
string(14) "1"
}
有效。我不希望在结尾加上斜杠。
现在要解决此问题,我已将其添加到我的.htaccess文件中:
RewriteRule test test/index.php [NC,P]
如本文所建议:
Is it possible to redirect post data?
那仍然没有用。我想念什么?
答案 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的情况下编辑调度程序。