You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telegram Webhook已存在但API提示未找到的问题求助

解决Telegram Webhook返回404但浏览器能访问的问题

兄弟,我之前帮不少开发者踩过这个坑,咱们一步步来定位问题:

  • 先查服务器访问日志,确认Telegram的请求到底有没有到达
    你用浏览器访问/Telegram/webhook.php时,服务器日志里肯定有记录对吧?现在去翻日志,看看调用setWebhook之后,有没有来自Telegram IP的请求。如果完全没找到相关日志,那大概率是服务器防火墙/安全组把Telegram的IP拦截了——Telegram的Webhook请求只来自官方指定的IP段,你得把这些IP加到白名单里(比如Nginx的allow规则,或者云服务商的安全组配置)。

  • 检查HTTPS证书的有效性
    Telegram对Webhook的HTTPS证书要求很严格:必须是受信任的公共CA颁发的(自签证书绝对不行,除非你用setWebhook的certificate参数上传证书文件)。你浏览器能访问可能是因为浏览器忽略了一些证书警告,但Telegram的API会直接拒绝。可以用命令行curl -I https://hexah.net/Telegram/webhook.php查看证书信息,或者用本地SSL检测工具确认证书链是否完整。

  • 注意路径的大小写问题
    Linux服务器的文件路径是区分大小写的!如果你浏览器访问的是/Telegram/webhook.php,但实际服务器上的文件夹是/telegram(小写t),那Telegram的请求就会找不到文件。去服务器上用ls -l命令看看实际路径的大小写是不是和你设置的URL完全一致。

  • 排查是否存在重定向
    有些服务器会自动把HTTP请求重定向到HTTPS,或者给路径末尾加斜杠(比如把/webhook.php重定向到/webhook.php/)。但Telegram的API不跟随任何重定向,只要返回301/302状态码,它就会判定为404。你可以用curl -v https://hexah.net/Telegram/webhook.php测试,看看输出里有没有Location字段的重定向信息,确保请求直接返回200 OK。

  • 检查服务器的Rewrite规则
    如果你的服务器用了URL重写(比如WordPress的伪静态规则),有可能把/Telegram/webhook.php的请求给改写了。去看看Nginx的配置文件或者Apache的.htaccess,有没有规则会匹配这个路径并导向其他页面,有的话要给这个路径添加例外规则。

  • 确认Webhook的GET请求处理逻辑
    Telegram在设置Webhook时,会先发送一个GET请求验证地址有效性。你的webhook.php有没有正确处理GET请求?比如如果代码只处理POST请求,GET时直接返回404,那Telegram就会报错——不过你说浏览器能访问,说明GET请求是正常返回内容的,这个可能性比较小,但还是可以检查一下代码里的请求方法判断逻辑。

内容的提问来源于stack exchange,提问作者Mattia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:00:31