从服务器 .htaccess 中删除所有“允许所有”

从服务器 .htaccess 中删除所有“允许所有”

我拥有用于​​暂存网站的 Web 服务器的 shell 访问权限。不用说,上面有大量“暂存”网站。

路径就像:/home/ACCOUNT/public_html我们已经设置了一个全局htpasswd来“限制”访问(主要是防止被谷歌蜘蛛抓取……)

我发现我的开发“团队”Allow From All在处理网站时坚持将一个添加到网站的 .htaccess 文件中,然后忘记将其删除。

我该如何删除那行?注意,它可以是任何字母大小写。我甚至见过alLow frOm ALl

我以为sed可以做到这一点,我可以简单地循环目录来找到必要的.htaccess 文件,但我有点sed文盲......

答案1

类似于从最顶层目录开始:

find . -name '.htaccess' | xargs perl -pi -e 's/\s*allow\s+from\s+all\s*//i'

如果要保留备份文件,请替换-pi为 (推荐)-pi.bak

find负责递归到所有子目录中,xargs将对每个匹配项运行以下命令,该perl命令类似于sed中的整个正则表达式替换,s///将根据空格和制表符的数量匹配所有allow from all组合。最后/i确保不区分大小写。

我建议您创建一个目录,.htaccess在那里放一些文件,然后运行命令来尝试,然后再尝试将其应用到您的实时文件上。

相关内容