【发布时间】:2018-04-02 04:52:06
【问题描述】:
我目前遇到了一个有趣的问题。我用自己的方式从 GitHub 自动部署网站,但遇到了一个问题。 GitHub 通过 webhook 发送有效负载显然是作为 POST 请求。我有一个.htaccess,它为我编码了网址。这样它就变成了一个 GET 请求,不是吗?这是我.htaccess中的一行:
RewriteRule v1/(.*)$ index.php?request=$1 [QSA,NC,L]
我需要那里的变量...我继续在 PHP 中使用 GET 参数创建一个数组:
$url = explode("/", $_GET['request']);
在处理过程中,我还向 GitHubs API 发出了一些 GET 请求。
现在谈谈我不明白的想法。如果我运行 Webhook,我的文件不会上传。如果我自己打开网站,一切都会按原样更新。
也许有人知道原因以及如何解决它?
【问题讨论】:
-
“所以它被转换为一个 GET 请求,不是吗?” - 不,只有当它是一个 外部 重定向,这将使客户端完全发送一个新请求。只要只是内部重定向,就没有理由改变请求方法。
-
为什么这会让代码取消?
if ($_SERVER['REQUEST_METHOD'] !== "GET") return;@CBroe
标签: php .htaccess github webhooks