POST 可以使用 file_get_contents('php://input'); 进行重定向吗?
Can a POST follow a redirect using file_get_contents('php://input');?
我正在为 Exact Online 构建一个 webhook。我将我的 webhook 订阅 url 注册为:https://www.example.com/webhooks/exact/orders/
在 .htaccess 中我重写了这个 url:
Options +FollowSymlinks
Options -MultiViews
RewriteEngine on
RewriteRule ^webhooks/exact/orders/$ /webhooks/exact-orders.php [NC,QSA,L]
在 php 文件中,我回显了 post 输入:
echo file_get_contents('php://input');
当我用 postman 测试它时它没有输出任何东西,但是当我在 postman 中将 url 更改为 https://example.com/webhooks/exact-orders.php 时它起作用了。
所以当 url 被重写时 post 丢失了。有什么方法可以防止这种情况发生,还是我必须更改我的 webhook 订阅 url?
我对其他公司的 webhook 使用相同的重写规则,它们工作正常。
经过一些测试,我发现问题与从 /webhooks/exact/orders/
到 webhooks/exact-orders.php
的重定向无关
由于从 https://www.
重定向到 https://
,POST 丢失了
在服务器设置中我找到了一个名为 'Prefered domain' 的设置。它解释说:
Select the URL (either with or without the www. prefix) to which site
visitors will be redirected via a SEO-safe HTTP 301 redirect.
当我将首选域切换到 'None' 时,问题就解决了。
作为替代解决方案,我可以将我的 webhook 订阅更改为 url 而无需 www.前缀
我希望这对以后的人有所帮助。
我正在为 Exact Online 构建一个 webhook。我将我的 webhook 订阅 url 注册为:https://www.example.com/webhooks/exact/orders/
在 .htaccess 中我重写了这个 url:
Options +FollowSymlinks
Options -MultiViews
RewriteEngine on
RewriteRule ^webhooks/exact/orders/$ /webhooks/exact-orders.php [NC,QSA,L]
在 php 文件中,我回显了 post 输入:
echo file_get_contents('php://input');
当我用 postman 测试它时它没有输出任何东西,但是当我在 postman 中将 url 更改为 https://example.com/webhooks/exact-orders.php 时它起作用了。
所以当 url 被重写时 post 丢失了。有什么方法可以防止这种情况发生,还是我必须更改我的 webhook 订阅 url?
我对其他公司的 webhook 使用相同的重写规则,它们工作正常。
经过一些测试,我发现问题与从 /webhooks/exact/orders/
到 webhooks/exact-orders.php
由于从 https://www.
重定向到 https://
在服务器设置中我找到了一个名为 'Prefered domain' 的设置。它解释说:
Select the URL (either with or without the www. prefix) to which site visitors will be redirected via a SEO-safe HTTP 301 redirect.
当我将首选域切换到 'None' 时,问题就解决了。
作为替代解决方案,我可以将我的 webhook 订阅更改为 url 而无需 www.前缀
我希望这对以后的人有所帮助。