gpt4 book ai didi

php - 为什么404或其他自定义IIS错误页面中的POST数组为空?

转载 作者:行者123 更新时间:2023-12-03 07:54:17 25 4
gpt4 key购买 nike

我已经通过IIS > MySite > Error Pages设置了一个自定义php 404错误页面,但是 $ _POST 数组始终为空。这正常吗?如何告诉IIS将POST数据传递到PHP错误页面?

IIS 7.5

最佳答案

免责声明:此答案在两行之间的阅读中给出。

如我在评论中所述,如果请求无效,则没有理由处理一些用户输入。 HTTP状态代码404从字面上看意味着,此请求无效,因为找不到资源。

Wikipedia

The requested resource could not be found but may be available again in the future. Subsequent requests by the client are permissible.



什么是帖子?从 Wikipedia

Per RFC 7231, the POST method should be used for any context in which a request is non-idempotent: that is, it causes a change in server state each time it is performed, such as submitting a comment to a blog post or voting in an online poll.[...]



我无法确认或否认 IIS404上没有Post,因为我从未尝试过。但这是没有道理的。

对我来说,您似乎想重写一些请求。为此,您需要 Rewrite Module

然后,您可能会有这样的 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

现在,您可以分割字符串,使用它做出一些决定,并对不同的值执行不同的操作。

关于php - 为什么404或其他自定义IIS错误页面中的POST数组为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29462601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com