问题:开发者工具可以正常打开,正式上线版小程序使用 web-view 组件测试时提示:“无法打开该页面,不支持打开 https://xxxxxx,请在“小程序右上角更多->反馈与投诉”中和开发者反馈。”
解决方法:需要配置业务业务域名,在微信公众平台-开发-开发管理-业务域名。
下载校验文件后,格式为.txt文件。把文件给后端,后端部署服务器,部署完后,可以直接访问该文件。例如:业务域名为https://baidu.com,下载下来的文件名为test.txt,后端部署完成后,可以确保https://baidu.com/test.txt可以访问
转自:https://blog.csdn.net/weixin_69670563/article/details/140043954
好了,根据以上明白了:
下载下来的校验文件要放到域名根目录,但是我们的域名根目录已经被代理到了特定服务上,而代理nginx是通过docker搭建的,通过root 的方式也不合适,除了需要挂载本地目录外,主要是因为这个nginx主要是用来转发外网流量到内网的,不参与具体文件代理
最好的方式还是把txt文件上传到内网文件服务器,然后通过nginx转发出内网访问地址
然后配置外网的nginx路由规则:识别 .txt结尾的链接,直接代理到该内网地址
其实问题还是比较棘手,经过一番研究解决了:主要还是问的AI :)
内网文件服务器代理地址如下:http://10.30.30.183:8082/file_server/wxxcx/jNExaFCcIp.txt
外网的nginx配置路由规则:
location ~* \.txt$ { rewrite ^/(.*\.txt)$ /file_server/wxxcx/$1 break; proxy_pass http://10.30.30.183:8082; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
这里原来写的是 proxy_pass http://10.30.30.183:8082/file_server/wxxcx/,然后nginx重启报错了,问过ai才知道:这种写法 proxy_pass 目标地址不能包含URI部分(如 http://backend-server/newpath/ 会报错),仅保留协议、域名和端口。
所以多了一步rewrite步骤,把要访问的内网nginx地址给手动加上 /file_server/wxxcx/$1 ($1是.txt文件名比如123.txt),问题完美解决。
规则解析
规则语法:rewrite ^/(.*\.txt)$ /file_server/wxxcx/$1 break;
-
正则匹配部分
^/(.*\.txt)$
:匹配以根目录(/
)开头且以.txt
结尾的路径。^
表示字符串开始,$
表示字符串结束。.*
匹配任意字符(包括空字符),\.txt
匹配.txt
后缀。- 括号
( )
将匹配的内容(即文件名部分)捕获到变量$1
中。
-
重写目标路径
/file_server/wxxcx/$1
:将匹配的原始路径(如/test.txt
)重写为/file_server/wxxcx/test.txt
。$1
引用正则中捕获的.*\.txt
部分(即文件名)。
-
Flag标志
break
:表示完成当前规则处理后,不再执行后续的rewrite指令,直接使用重写后的路径继续处理请求(如查找文件或代理)12。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗