【发布时间】:2012-09-18 08:21:27
【问题描述】:
我有一些电子邮件 PHP 脚本,我不希望用户通过 GET 来查看,但我使用它作为电子邮件发送,如果有人知道它,则使用 wufoo 的 webHook,所以它使用 POST 所以我只是希望允许 POST 请求,否则 403 或 404 我该怎么做?
我尝试了一些关于 SO 的答案并浏览了 apache web 服务器的文档,我找到的最佳答案是:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !=GET
RewriteRule ^.*$ /path/to
但我想这应该写在我有 PHP 脚本的目录中,我只想在根目录中使用一个 .htaccess。
文件夹结构:
public_html (would want to use this folders .htaccess only)
-- email
-- mail.php (ONLY POST)
我知道我们可以直接在mail.php 中使用 REQUEST_METHOD,但我不想那样做,这实际上与脚本无关。
谁能提供一些帮助。
【问题讨论】:
-
在 PHP 中做这一切怎么样。如果存在任何 GET 字符串,将页面重定向到 404?更容易执行并且不太可能破坏其他脚本..
-
但是假设有 100 页,我不应该去 100 页,这样做对吗?我需要一个可以管理所有这些的集中文件,这就是提出这个问题的原因..
-
我通过在任何需要 POST 的页面/脚本中抛出一个我称之为
PostMethodNotAllowed的自定义异常来做到这一点。此异常被捕获,并且 HTTP 错误标头(例如 403)可以在该异常处理程序中设置以及用户友好的消息。
标签: php .htaccess web-applications http-post httpserver