我的任务是将旧的动态网站从 Windows 服务器迁移到 Linux。该网站最初是在不考虑字符大小写的情况下编写的。有些文件名都是大写的,有些是小写的,有些是混合的。当然,这在 Windows 中从来都不是问题,但现在我们正在转向区分大小写的文件系统。
带有快速查找/重命名命令(感谢另一个教程)的文件名全部小写。
但是,代码中的许多 URL 引用仍然指向这些大小写混合的文件名,因此我启用了 mod_speling 来克服这个问题。它似乎在大多数情况下都可以正常工作,除了一页:我有一个文件名haematobium.html
,每次链接指向 时,它都会像在浏览器中.../haematobium.html
一样被重写。.../hæmatobium.html
我不知道这个奇怪的字符最初是如何进入文件名的,但我已将 HTML 文档中的代码更正为现在链接到haematobium.html
,然后重命名haematobium.html
文件本身以匹配。
.../haematobium.html
在 Chrome 中请求时,它会.../hæmatobium.html
在地址栏中“更正”为,并显示错误消息“.../hæmatobium.html
在此服务器上找不到请求的 URL”。
在 IE9 中,提示我登录(这是一个受 .htaccess 保护的页面),我输入它,然后如果将 URL 转发到.../h%C3%A6matobium.html
,它又不会加载。
在我的挫败感中,我什至都复制haematobium.html
到了这三个页面hæmatobium.html
,hæmatobium.html
但实际上这三个页面都没有加载。
所以我的问题是:我在某处读到 mod_speling 试图“学习”拼写错误的 URL。它是否真的重命名了文件(奇怪的字符可能来自哪里)?它是否保留了所要求的缓存以及转发到的缓存(我可以清除的缓存)?
PS。还有许多对 MySQL 数据库表和字段的混合大小写引用,但这完全是“另一个噩梦”。