我们有一个始终部署在Windows服务器上的站点,没有区分大小写问题。但是,我们现在需要部署到Linux并且知道该站点有许多错误的URL和引用。
是否有任何应用程序可以扫描网站并修复套管问题?这需要修复HTML文件,CSS文件以及可能的Javascript文件。
我正在考虑编写一个应用程序,该网站中的每个文件都会搜索所有其他文件以查看它们是否引用了它然后更正了任何套管错误,但是考虑到它可能已经完成,我可以下载一个现成的解决方案。
由于 加文
答案 0 :(得分:4)
这是Apache吗?您可以使用mod_speling让服务器忽略大小写。
答案 1 :(得分:1)
根据您的错误余地和时间表,您可以通过在访问网站时痴迷监控网络服务器日志来解决此问题。这将涉及对代码库的最少更改。
或者,您可以要求所有文件都是小写的,然后在代码库上运行检查器,在URL中查找大写字符。
无论哪种方式,你都需要做一些手工工作来解决所有问题。
答案 2 :(得分:1)
您使用的是哪种开发环境?
例如,在Dreamweaver中,您可以检查并更正站点范围内的链接。
修改:要回答您的问题:您可以下载Dreamweaver的试用版,将您的网站作为项目放入,并使用链接检查器检查并更正链接。
正如评论中所说,我肯定会纠正这个问题,而不是试图通过使用“忽略案例”解决方案解决它。这样,您的网站便携,您将来可以避免出现问题。一个好的文件名约定总是一个好主意(没有大写,没有空格,没有异国情调等)。
答案 3 :(得分:1)
这是一种超快速,简单的方法;将站点加载到目标环境,然后在根点指向Xenu's Link Sleuth(免费下载)并让它运行。它将报告生成的所有404,然后您可以运行并解决它们中的每一个。容易。
答案 4 :(得分: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);
?>
确保所有文件名都是小写的。
答案 5 :(得分:0)
我在正则表达式模式中使用了ActiveState Komodo Edit的find和replace函数来做类似的事情。
答案 6 :(得分:0)
一种方法是将所有文件放在linux服务器上,可能在测试配置/ URL下,然后针对根URL(或任何其他适当的URL)运行LinkChecker:
http://linkchecker.sourceforge.net/
并查看是否报告任何损坏的链接。
答案 7 :(得分:0)
我使用了Dreamweaver,它可以跟踪所有链接。重命名图像文件夹,它将为您更新html文件中的所有链接。然后,您可以根据需要将文件夹名称更改回原始名称(它将再次更新所有链接)。