我在非 https apache 共享服务器上实现了 google 的 reCAPTCHA V2,它 100% 正常工作。然后,我使用与非 SSL 脚本相同的脚本将协议更改为使用 SSL 的共享服务器。旧版本的 reCaptcha 有一个 SSL“false”到“true”的 SSL 参数,而我找不到 V2 的 SSL 参数。
我必须使用 htaccess 将 example.com 重定向到共享 SSL 服务器https://serverid.net/example/
,该服务器在没有 recCAPTCHA 的情况下也能完美运行。我整合了 reCAPTCHA V2,并显示应显示 reCAPTCHA 图像的错误消息ERROR: Invalid domain for site key
。
这是 htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)example\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://servername.net/example/$1 [R,L]`
以下是github 上的 recaptchalib.php 代码可能会有帮助:
有人知道怎样让它工作吗?
答案1
旧版本的 reCaptcha 有一个 SSL“false”到“true”的 SSL 参数,而我找不到 V2 的参数。
API 在 v2 中发生了变化。它应该可以在 SSL 和非 SSL 网站中无缝运行。
reCAPTCHA 图像所在的错误消息显示错误:站点密钥的域无效。
您在 example.com 下注册了密钥。因此,google reCAPTCHA 服务器希望用户从域 加载它http://example.com
。现在您在 中显示它,http://serverid.net/
这与 不同,http://example.com
因此呈现了错误消息。
有人知道怎样让它工作吗?
在现有 API 密钥中添加新域名。请参阅这一页获取 reCAPTCHA 仪表板
答案2
在 recaptcha 页面的关键设置中将域名添加到列表中,例如:
exampleshared.com
例如https.com