我们有一个站点始终部署在 Windows 服务器上,没有区分大小写的问题。然而,我们现在需要部署到 Linux 并且知道该站点有很多大小写错误的 URL 和引用。
是否有任何应用程序可以扫描站点并修复外壳问题?这需要修复 HTML 文件、CSS 文件以及可能的 Javascript 文件。
我正在考虑编写一个应用程序,为站点中的每个文件搜索所有其他文件以查看它们是否引用了它,然后更正任何大小写错误,但认为它可能已经完成,我可以下载现成的解决方案。
谢谢加文
我们有一个站点始终部署在 Windows 服务器上,没有区分大小写的问题。然而,我们现在需要部署到 Linux 并且知道该站点有很多大小写错误的 URL 和引用。
是否有任何应用程序可以扫描站点并修复外壳问题?这需要修复 HTML 文件、CSS 文件以及可能的 Javascript 文件。
我正在考虑编写一个应用程序,为站点中的每个文件搜索所有其他文件以查看它们是否引用了它,然后更正任何大小写错误,但认为它可能已经完成,我可以下载现成的解决方案。
谢谢加文
这是阿帕奇吗?您可以使用 mod_speling 让您的服务器忽略大小写。
根据您的错误余地和时间线,您可以通过在您访问该站点时过分监视网络服务器日志中的 404 错误来解决此问题。这将涉及对代码库的最少更改。
或者,您可以要求所有文件都是小写,然后在代码库上运行检查器以查找 URL 中的大写字符。
无论哪种方式,您都必须做一些手工工作才能解决所有问题。
你用的是什么开发环境?
例如,在 Dreamweaver 中,您可以检查和更正站点范围内的链接。
编辑:回答您的问题:您可以下载 Dreamweaver 的试用版,将您的网站作为项目放入并使用链接检查器检查和更正链接。
正如评论中所说,我肯定会纠正这个问题,而不是试图通过使用“忽略大小写”的解决方案来解决它。这样您的网站是可移植的,您将避免将来出现问题。一个好的文件名约定总是一个好主意(没有大写,没有空格,没有外来字符等)。
这是一种超级快速、简单的方法;将站点加载到目标环境中,然后将Xenu 的 Link Sleuth(免费下载)指向根目录并让它疯狂运行。它将报告生成的所有 404,然后您可以运行并解决每个问题。简单的。
最好的方法是修复您的网址,或者,您可以将以下重写规则添加到您的 .htaccess
RewriteEngine on
RewriteRule ^[A-Z]+.*\.html$ lowercase.php [L]
在 lowercase.php 中(根据您的技术进行更改)
<?php
// convert uri to lowercase
$uri = $_SERVER['REQUEST_URI'];
$uri_lc = strtolower($uri);
// redirect (permanent)
header("Location: http://".$_SERVER['HTTP_HOST'].$uri_lc,TRUE,301);
?>
确保所有文件名都是小写的。
我在正则表达式模式下使用了 ActiveState Komodo Edit 的查找和替换功能来做类似的事情。
一种方法是将所有文件放在 linux 服务器上,可能在测试配置/URL 下,然后针对根 URL(或任何其他适当的 URL)运行 LinkChecker:
http://linkchecker.sourceforge.net/
并查看它是否报告任何断开的链接。
我使用了 Dreamweaver,它会跟踪所有链接。重命名图像文件夹,它将为您更新 html 文件中的所有链接。然后,您可以根据需要将文件夹名称更改回原始名称(它将再次更新所有链接)。