0

我们有一个站点始终部署在 Windows 服务器上,没有区分大小写的问题。然而,我们现在需要部署到 Linux 并且知道该站点有很多大小写错误的 URL 和引用。

是否有任何应用程序可以扫描站点并修复外壳问题?这需要修复 HTML 文件、CSS 文件以及可能的 Javascript 文件。

我正在考虑编写一个应用程序,为站点中的每个文件搜索所有其他文件以查看它们是否引用了它,然后更正任何大小写错误,但认为它可能已经完成,我可以下载现成的解决方案。

谢谢加文

4

8 回答 8

4

这是阿帕奇吗?您可以使用 mod_speling 让您的服务器忽略大小写。

http://httpd.apache.org/docs/1.3/mod/mod_speling.html

于 2009-07-06T16:04:37.983 回答
1

根据您的错误余地和时间线,您可以通过在您访问该站点时过分监视网络服务器日志中的 404 错误来解决此问题。这将涉及对代码库的最少更改。

或者,您可以要求所有文件都是小写,然后在代码库上运行检查器以查找 URL 中的大写字符。

无论哪种方式,您都必须做一些手工工作才能解决所有问题。

于 2009-07-06T16:03:02.950 回答
1

你用的是什么开发环境?

例如,在 Dreamweaver 中,您可以检查和更正站点范围内的链接。

编辑:回答您的问题:您可以下载 Dreamweaver 的试用版,将您的网站作为项目放入并使用链接检查器检查和更正链接。

正如评论中所说,我肯定会纠正这个问题,而不是试图通过使用“忽略大小写”的解决方案来解决它。这样您的网站是可移植的,您将避免将来出现问题。一个好的文件名约定总是一个好主意(没有大写,没有空格,没有外来字符等)。

于 2009-07-06T16:14:07.793 回答
1

这是一种超级快速、简单的方法;将站点加载到目标环境中,然后将Xenu 的 Link Sleuth(免费下载)指向根目录并让它疯狂运行。它将报告生成的所有 404,然后您可以运行并解决每个问题。简单的。

于 2009-07-07T02:19:59.253 回答
0

最好的方法是修复您的网址,或者,您可以将以下重写规则添加到您的 .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);
?>

确保所有文件名都是小写的。

于 2009-07-06T16:12:30.760 回答
0

我在正则表达式模式下使用了 ActiveState Komodo Edit 的查找和替换功能来做类似的事情。

于 2009-07-07T06:11:01.183 回答
0

一种方法是将所有文件放在 linux 服务器上,可能在测试配置/URL 下,然后针对根 URL(或任何其他适当的 URL)运行 LinkChecker:

http://linkchecker.sourceforge.net/

并查看它是否报告任何断开的链接。

于 2009-07-07T08:39:33.037 回答
0

我使用了 Dreamweaver,它会跟踪所有链接。重命名图像文件夹,它将为您更新 html 文件中的所有链接。然后,您可以根据需要将文件夹名称更改回原始名称(它将再次更新所有链接)。

于 2020-11-24T04:08:30.653 回答