Wordpress 或 PHP 中的某些内容覆盖了我的访问控制允许来源标头设置

问题描述 投票:0回答:1

我正在尝试将我的 access-control-allow-origin 设置为“*”,以便从 Wordpress 插件(我开发的,参见:wp-nostr-nip05)获得 Nostr NIP-05 身份验证

当我

nostr.json
用我的NIP-05 id和Apache(或Nginx)设置硬编码

access-control-allow-origin: '*'

一切正常。

现在,当我使用该插件时,

nostr.json
不再是一个平面文件,它是一个为
force-type
目录启用了
/.well-known/
的 PHP 脚本。这样文件就可以从用户表中选择适当的 NIP-05 id,键入 HTTP_HOST 和登录名。

访问 https://example.comhttps://example.com/.well-known 会产生预期的标头,只有在访问时才会出现

https://example.com/.well-known/nostr.json

access-control-allow-origin 设置为:

access-control-allow-methods: POST, GET, OPTIONS
access-control-allow-origin: https://example.com, *
access-control-max-age: 1728000

不仅仅是:

access-control-allow-origin: *

我认为这是导致 NIP-05 验证失败的原因。

我一直在寻找 access-control-allow-origin 可能被 Wordpress 明确设置的地方,并发现:

./httpdocs/wp-includes/rest-api.php
./httpdocs/wp-includes/http.php

并注释掉:

header( 'Access-Control-Allow-Origin: ' . $origin );
header( 'Access-Control-Allow-Credentials: true' );

但是那似乎没有得到它。

还安装了一个 wordpress 插件来明确设置 wordpress 中的标题,不会改变任何东西

甚至尝试从内部发送它 nostr.json

Header("Access-Control-Allow-Origin: *");

没有效果。

我现在正式没主意了。

理想情况下,我希望能够在 /.well-known/ 目录中设置“*”,但我需要先让它工作

(评论提示的更新:没有 .htaccess 覆盖这个,理想情况下我会通过 htaccess 完成这一切,但似乎没有在这个服务器上使用。)

php wordpress apache cors
1个回答
0
投票

您可以尝试在 .htaccess 中指定它

<FilesMatch "/.well-known/nostr.json">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>

或者您可以尝试在众所周知的文件夹中创建一个新的 .htaccess 文件并添加:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>
© www.soinside.com 2019 - 2024. All rights reserved.