跳至主要內容

url的大小写敏感导致的404问题

Kamimika...大约 2 分钟其它错误记录笔记

本文介绍了作者在使用 vuepress 搭建个人博客时,由于 url 的大小写敏感导致的 404 问题,以及解决方案。

当我在本地使用 docs:dev 运行时的,可以正常访问含有大写字母的所有网页,但当我部署网页到 Netlify 时,直接通过 url 访问时,会出现 404 错误。 而通过进入主页后逐步点击访问其他页面时,却是正常的。

由于 vuepress 是单页应用,逐步点击访问其他页面时,实际上是切换了路由,而不是真正去发送请求,因此不会出现 404 错误。

反复尝试

而经过反复尝试后最终发现,在页面中按 F5 时,url 中的大写字母会自动变成小写字母,导致无法正确访问。

  • 在使用含有大写字母的文件夹/文件名时的,访问时的 url 也会含有大写字母的,这在 docs:dev 环境和其它本地服务器环境下一切都可以正常运作。

  • 但当尝试使用 Netlify 等服务器托管环境时的,按 F5 刷新网页时或直接通过 url 访问时的,url 中大写字母会自动变成小写,从而导致 404 错误。尽管搜索引擎任然能爬取网站的内容,但点击访问时却会得到一个 404 错误。

因此我怀疑这是由于 Netlify 等服务器托管环境对 url 的大小写敏感,而我无法修改服务器配置,为此不得不将大写字母的文件夹/文件名改为小写字母。

但对于一些专有名词,转换为小写后失去了原有的意义,使得这只能是一个暂时且局部的解决方案,并不能完美地解决这个问题。

解决

进一步研究发现,这是 Netlify 服务器对 url 大小写不敏感的特性导致的。

该特性在 Netlify 论坛open in new window 中亦有提及,许多人呼吁 Netlify 应该提供一个选项来禁用该特性,但目前尚未有相关的解决方案。

因此,只能通过放弃使用 Netlify 等服务器托管环境,而使用其他的服务器托管服务,如 Cloudflare Pages 来解决这个问题。

上次编辑于:
贡献者: wzh656
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.3.2