我在这里使用cURL向PHP脚本发布带有POST数据的请求:http://localhost/example/index.php
如何隐藏index.php并发布到http://localhost/example?
我试过在那里张贴,但是我得到了一个301 Moved Permanently标头,如果我将CURLOPT_FOLLOWLOCATION设置为TRUE,则请求跟随,但似乎丢失了POST数据 - 我在远端使用此file_get_contents得不到任何内容( 'PHP://输入')。
答案 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]
。