Woocommerce 正在对授权端点进行编码
Woocommerce is encoding the authorization endpoint
我在使用 woocommerce 身份验证时遇到了一个奇怪的问题。当我尝试从 URL - /wc-auth/v1/authorize?app_name=example.com
验证我的 vue 应用程序时,它会重定向到 /wc-auth%2Fv1/access_granted/
并给出 404 错误。
通知 “%2F” URL。如果我在地址栏中将 "%2F" 编辑为 /,它可以正常工作。我不知道我在这里做错了什么。我猜 woocommerce/wordpress 正在编码 url。任何解决此问题的建议都会非常有帮助。
我在几个使用 WordPress 多语言 (WPML) 插件的站点中发现了这个问题。受影响的网站 运行 版本 > 4.4.6.
WPML 开发人员已意识到该问题,并且他们有一张票,在发帖时仍未解决该问题 (https://wpml.org/errata/endpoints-containing-slashes-are-incorrectly-encoded/)。
来自那张票:
症状
使用 WooCommerce 扩展或其他插件或主题的用户使用端点 wc-auth/v1 可能会错误地看到这些端点 url-编码为 wc-auth%2Fv1.
这可能会导致与最新版本 WPML 中的那些插件或主题的兼容性问题。
解决方法
我们的开发人员正在努力解决此问题。作为临时解决方案,请尝试以下步骤:
完全备份您的网站。
确保您的所有插件都是最新的。
编辑文件wp-content/plugins/sitepress-multilingual-cms/classes/url-handling/class-wpml-endpoints-support.php,修改第95行
发件人:
return urlencode( $endpoint_translation );
收件人:
return implode('/', array_map('urlencode', explode('/', $endpoint_translation)));
此更改不应影响不包含斜杠的端点。
我在使用 woocommerce 身份验证时遇到了一个奇怪的问题。当我尝试从 URL - /wc-auth/v1/authorize?app_name=example.com
验证我的 vue 应用程序时,它会重定向到 /wc-auth%2Fv1/access_granted/
并给出 404 错误。
通知 “%2F” URL。如果我在地址栏中将 "%2F" 编辑为 /,它可以正常工作。我不知道我在这里做错了什么。我猜 woocommerce/wordpress 正在编码 url。任何解决此问题的建议都会非常有帮助。
我在几个使用 WordPress 多语言 (WPML) 插件的站点中发现了这个问题。受影响的网站 运行 版本 > 4.4.6.
WPML 开发人员已意识到该问题,并且他们有一张票,在发帖时仍未解决该问题 (https://wpml.org/errata/endpoints-containing-slashes-are-incorrectly-encoded/)。
来自那张票:
症状
使用 WooCommerce 扩展或其他插件或主题的用户使用端点 wc-auth/v1 可能会错误地看到这些端点 url-编码为 wc-auth%2Fv1.
这可能会导致与最新版本 WPML 中的那些插件或主题的兼容性问题。
解决方法
我们的开发人员正在努力解决此问题。作为临时解决方案,请尝试以下步骤:
完全备份您的网站。
确保您的所有插件都是最新的。 编辑文件wp-content/plugins/sitepress-multilingual-cms/classes/url-handling/class-wpml-endpoints-support.php,修改第95行
发件人:
return urlencode( $endpoint_translation );
收件人:
return implode('/', array_map('urlencode', explode('/', $endpoint_translation)));
此更改不应影响不包含斜杠的端点。