我需要将几十个静态网站(纯html)从Windows / IIS移到Linux / Apache。 正如你可能知道的,Linux是区分大小写的,我敢肯定,在一种情况下可能有数百个带有文件引用的html文件,另一种情况下引用的文件是:(
有没有一个工具来检查/修复这个问题(通过修复文件系统中的文件或重命名文件)?
谢谢! JFA
你可能想调查简单启用mod_speling 。 它可以为您处理大部分的案件问题。 如果有正确的情况对你来说不是那么重要,你可以启用这个function,继续前进。
将文件重命名为小写是不够的,因为具有鞋帮的入站链接或书签将会得到“404-找不到文件”的错误。 重命名这些文件,然后使用mod_rewrite强制URL降低:
http://www.chrisabernethy.com/force-lower-case-urls-with-mod_rewrite/
据我所知,目前还没有专门为此devise的工具,但是,如果您想深入研究一下Linux,我会build议使用awk , sed和grep来创build一个脚本来search并replace所有的不正确的条目。 但是,这种方法可能仍然需要一段时间,特别是如果您没有太多的命令行或shell脚本的经验。
另外,我相信像Dreamweaver这样的IDE以及没有能力重命名文件并更新所有的引用,所以你可以看看。 这意味着你将不得不为每个文件做这件事,但它可能比试图编写能够捕捉所有可能情况的脚本更快。 Aptana是另一个可以做到这一点的IDE,虽然我没有用它来达到上述目的。
我只是使用shell脚本,Perl或重命名命令将它们全部重命名为小写。 这个stackoverflow后有一堆不同的方法,包括shell和Perl,但实际上,其中大部分将打破如果空间…
我会用zsh做下面的事情,尽pipe不是最快的select:
for file in **/*.html; do if [[ "$file" != "${(L)file}" ]]; then mv "$file" "${(L)file}"; fi done
您可以从安装在Linux中的分区提供您的网站,并将文件名转换设置为不区分大小写。
如果你在Linux上使用vfat(fat32)文件系统,你可以按如下方式安装它
$ mount -t vfat /dev/XXX /var/windows/websites
/ var / windows /网站中的任何文件名将被视为与Windows一样。