我需要将数十个静态网站(纯 HTML)从 Windows/IIS 移至 Linux/Apache。您可能知道,Linux 区分大小写,我确信可能有数百个 HTML 文件,在一种情况下包含文件引用,而在另一种情况下包含引用的文件 :(
是否有工具可以检查/修复此问题(通过修复引用或重命名文件系统上的文件)?
谢谢!JFA
答案1
你可能想调查一下如何启用mod_speling。它可以为您处理大多数案例问题。如果正确的案例对您来说并不那么重要,您可以启用此功能并继续。
答案2
将文件重命名为小写是不够的,因为包含大写的入站链接或书签将收到“404 - 未找到文件”错误。重命名文件,然后使用 mod_rewrite 将 URL 强制改为小写:
http://www.chrisabernethy.com/force-lower-case-urls-with-mod_rewrite/
答案3
据我所知,没有专门为此设计的工具,但是,如果您想深入研究 Linux,我建议使用创建一个脚本awk
,sed
并可能grep
搜索和替换所有不正确的条目。但是,这种方法可能仍需要一段时间,特别是如果您对命令行或 shell 脚本没有太多经验。
另外,我相信 Dreamweaver 等 IDE 能够重命名文件并更新所有引用,因此您可以研究一下。这意味着您必须对每个文件都执行此操作,但这可能仍然比尝试编写一个可以捕获所有可能情况的脚本更快。阿普塔纳是另一个可以实现此功能 IDE,尽管我没有将它用于上述目的。
答案4
您可以从安装在 Linux 上的分区为您的网站提供服务,并将文件名转换设置为不区分大小写。
如果你在 Linux 上使用 vfat(fat32)文件系统,你可以按如下方式挂载它
$ mount -t vfat /dev/XXX /var/windows/websites
/var/windows/websites 中的任何文件名都将按照与 windows 相同的方式处理。