【发布时间】:2017-12-05 11:48:46
【问题描述】:
我需要注释掉服务器上许多不同网站的 .htaccess 文件中的特定行。
.htaccess 文件位于如下目录中:
/home/siteA/public_html/.htaccess
/home/siteB/public_html/.htaccess
等等……
这些是我想从所有 .htaccess 文件中注释掉的代码块:
<IfModule mod_suphp.c>
suPHP_ConfigPath /home/bcrunch
<Files php.ini>
order allow,deny
deny from all
</Files>
</IfModule>
<Files ".user.ini">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
我尝试了以下方法:
root@server [/home]# shopt -s globstar
root@server [/home]# sed -i.bak -r '/<IfModule mod_suphp\.c>/,/<\/IfModule>/ s/^/#/; /<Files
"\.user\.ini">/,/<\/Files>/ s/^/#/' **/.htaccess
我已经在使用其他测试子目录创建的测试目录中对其进行了测试,并使用上述内容测试了 .htaccess 文件,它工作正常,但是一旦我从 /home 运行它,我有大约 30 多个站点,它就会挂起一段时间很长一段时间,刚刚开始使用越来越多的内存。问题是它递归搜索,并且由于其他目录中还有其他 .htaccess 文件,我对它只是陷入困境不感兴趣。
那么我怎样才能更改上面的代码并告诉它只对所有这样的文件进行更改呢?
/home/siteA/public_html/.htaccess
并忽略其他 .htacccess 文件?
我一直在尝试使用各种查找搜索,但到目前为止都没有运气。
【问题讨论】:
标签: bash