卷曲跟随位置和POST

时间:2012-01-09 19:01:40

标签: php post curl

我在这里使用cURL向PHP脚本发布带有POST数据的请求:http://localhost/example/index.php

如何隐藏index.php并发布到http://localhost/example

我试过在那里张贴,但是我得到了一个301 Moved Permanently标头,如果我将CURLOPT_FOLLOWLOCATION设置为TRUE,则请求跟随,但似乎丢失了POST数据 - 我在远端使用此file_get_contents得不到任何内容( 'PHP://输入')。

1 个答案:

答案 0 :(得分:2)

重定向时POST数据丢失,你无法避免。

您可以做的是在.htaccess中指定(假设您运行Apache)

DirectoryIndex index.php

然后通过请求http://localhost/example/,您将收到该目录中的index.php。

如果你想为请求转到http://localhost/example(没有斜杠),也会出现问题,因为默认情况下,apache会重定向到带有斜杠的url,从而丢失POST数据。要处理它,你可以伪造请求目录:

RewriteRule fakedirthatuserknows/?$ /realscriptdir/index.php [L]

/?指向Apache使用该规则的两种情况:有和没有尾部斜杠。为避免重定向,您需要跳过R=301标记,使其成为[L]。通过重定向,它将是[R=301,L]