Closed epifirumu closed 4 months ago
这个问题是此前使用 Cloudflare Worker 重定向 tfsci 链接到对应语言的地址,而在一次遭遇 DDoS 攻击后取消了 Worker 导致的。比较理想的方案应该是在 tfsci 的前端上使用 js 进行对应语言地址的重定向。
这个问题是此前使用 Cloudflare Worker 重定向 tfsci 链接到对应语言的地址,而在一次遭遇 DDoS 攻击后取消了 Worker 导致的。比较理想的方案应该是在 tfsci 的前端上使用 js 进行对应语言地址的重定向。
感谢回复。仅修正链接看来无法从根源上解决问题,而且比较死板。
我这边发现其实还有 Cloudflare 的 Redirect Rules 功能可用,并且可以满足根据用户浏览器/操作系统语言/IP地址进行跳转的需求(只是规则代码不能使用可视化编辑器),没有请求量、 CPU耗时限制。
根据 tfsci 的具体场景我编写了对应的完整重定向规则,并将其部署在了一个使用 Cloudflare 免费计划的网站上进行了测试,效果如下链接所示:
对于文章链接未包含语言字段的情况: https://tfsci-redirect-test.mtf.gd/misc/progynova/ https://tfsci-redirect-test.mtf.gd/articles/transfem-intro/#gnrh-agonists-and-antagonists (预期行为:根据浏览器语言跳转)
对于文章链接已包含语言字段的情况: https://tfsci-redirect-test.mtf.gd/zh-cn/articles/injectable-e2-meta-analysis/#estradiol-cypionate-oil https://tfsci-redirect-test.mtf.gd/zh-hk/articles/injectable-e2-meta-analysis/#estradiol-cypionate-oil https://tfsci-redirect-test.mtf.gd/zh-tw/articles/injectable-e2-meta-analysis/#estradiol-cypionate-oil (预期行为:不跳转)
对于非文章链接或文本页面的情况: https://tfsci-redirect-test.mtf.gd/cdn-cgi/trace https://tfsci-redirect-test.mtf.gd/favicon.png https://tfsci-redirect-test.mtf.gd/main.min.e8502728e1492c0ef3df9f03a98d5a42850ecb336629188566e97484d8842a97.js (预期行为:不跳转)
完整的代码、优缺点对比、解释与部署流程,请参阅: https://gist.github.com/epifirumu/c2a66bd5d0b6d103cc51f554f142ed1c
不知道能不能帮上忙/彻底解决这个问题…?(期待回复)
@epifirumu 免费版本cf重定向功能有规则数量限制,暂不考虑使用,感谢您的帮助。
@epifirumu 免费版本cf重定向功能有规则数量限制,暂不考虑使用,感谢您的帮助。
Understood😊. Thanks for your quick response!
已知悉这项需求。我会尝试在 TFSci 一侧加入重定向机制,如未果则考虑在主站各个链接加入相应语言的地址。
修复完成!!Commit: project-trans/transfeminine-science@8b85adc110fea78eed244ae4f08712fcbed4627b 变动也成功上传了! :tada:
其实可以让构建的时候生成一个 _redirects 这个文件,里面写所有的跳转规则
不过这样的话似乎没法检测语言
我发现 Mtf.Wiki 上大量指向 tfsci 中文译本存档站的链接在访问后不会直接展示内容页面,而是跳转到了 https://tfsci.mtf.wiki/zh-cn/ 网站主页(与访问不存在路径的行为相同)。
这应该是tfsci在引入香港繁体/台湾正体这两种汉语变体后因路径格式变化产生的问题。
我在此次提交中更新了URL格式,为Mtf.Wiki上引用的 tfsci.mtf.wiki 下的 URL 添加了对应的"/zh-cn"或"/zh-tw"字段以修复此问题,便于读者在访问时能直达文章内容。
更改后的URL已经过测试,以确保它们返回"200 OK"状态码并且不会像访问不存在的路径那样重定向到主页。