project-trans / MtF-wiki

MtF.wiki is a free, open, and continuously updating transgender female knowledge integration site.
https://MtF.wiki
Creative Commons Attribution Share Alike 4.0 International
824 stars 202 forks source link

docs: 更新过时的tfsci链接 #1039

Closed epifirumu closed 4 months ago

epifirumu commented 4 months ago

我发现 Mtf.Wiki 上大量指向 tfsci 中文译本存档站的链接在访问后不会直接展示内容页面,而是跳转到了 https://tfsci.mtf.wiki/zh-cn/ 网站主页(与访问不存在路径的行为相同)。

这应该是tfsci在引入香港繁体/台湾正体这两种汉语变体后因路径格式变化产生的问题。

我在此次提交中更新了URL格式,为Mtf.Wiki上引用的 tfsci.mtf.wiki 下的 URL 添加了对应的"/zh-cn"或"/zh-tw"字段以修复此问题,便于读者在访问时能直达文章内容。

更改后的URL已经过测试,以确保它们返回"200 OK"状态码并且不会像访问不存在的路径那样重定向到主页。

BeiyanYunyi commented 4 months ago

这个问题是此前使用 Cloudflare Worker 重定向 tfsci 链接到对应语言的地址,而在一次遭遇 DDoS 攻击后取消了 Worker 导致的。比较理想的方案应该是在 tfsci 的前端上使用 js 进行对应语言地址的重定向。

epifirumu commented 4 months ago

这个问题是此前使用 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

不知道能不能帮上忙/彻底解决这个问题…?(期待回复)

Cryolitia commented 4 months ago

@epifirumu 免费版本cf重定向功能有规则数量限制,暂不考虑使用,感谢您的帮助。

epifirumu commented 4 months ago

@epifirumu 免费版本cf重定向功能有规则数量限制,暂不考虑使用,感谢您的帮助。

Understood😊. Thanks for your quick response!

Bersella-AI commented 4 months ago

已知悉这项需求。我会尝试在 TFSci 一侧加入重定向机制,如未果则考虑在主站各个链接加入相应语言的地址。

Bersella-AI commented 4 months ago

修复完成!!Commit: project-trans/transfeminine-science@8b85adc110fea78eed244ae4f08712fcbed4627b 变动也成功上传了! :tada:

clansty commented 4 months ago

其实可以让构建的时候生成一个 _redirects 这个文件,里面写所有的跳转规则

不过这样的话似乎没法检测语言