我已经设置了一个自定义php 404错误页面,IIS > MySite > Error Pages
但是$ _POST数组始终为空。这正常吗?如何告诉IIS将POST数据传递到PHP错误页面?
IIS 7.5
免责声明:此答案在两行之间的阅读中给出。
如我在评论中所述,如果请求无效,则没有理由处理一些用户输入。HTTP状态代码404从字面上看意味着,此请求无效,因为找不到资源。
来自维基百科
找不到请求的资源,但将来可能再次可用。客户的后续请求是允许的。
什么是帖子?来自维基百科
根据RFC 7231,POST方法应用于请求不具有幂等性的任何上下文:也就是说,每次执行请求时,都会导致服务器状态发生变化,例如向博客文章提交评论或投票。在线民意调查。[...]
我无法确认或否认是否IIS
启用Post 404
,因为我从未尝试过。但这是没有道理的。
对我来说,您似乎想重写一些请求。为此,您需要重写模块。
然后,您可能会遇到web.config
这样的情况。
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="RequestString">
<match url="^(.*)$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?requestString={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
在您index.php
身上,您可以:
echo $_GET['requestString'];
如果您调用url http://yourwebsite.com/foo/bar
,则会在index.php
字符串中回显foo/bar
。
现在,您可以分割字符串,使用它做出一些决定,并对不同的值执行不同的操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句