У меня есть доступ к оболочке веб-сервера, который используется для промежуточных сайтов. Излишне говорить, что на нем масса «промежуточных» сайтов.
Пути такие: /home/ACCOUNT/public_html
и мы установили глобальный htpasswd
чтобы "ограничить" доступ (в основном, от Google ...)
Я обнаружил, что моя «команда» разработчиков настаивает на добавлении Allow From All
в файл .htaccess сайта, пока они работают над сайтом, и забудьте снова вынуть его.
Как мне удалить эту строчку? Обратите внимание, это может быть любой регистр ... Я даже видел alLow frOm ALl
я думал sed
мог бы это сделать, и я могу просто зациклить каталоги, чтобы найти необходимые файлы .htaccess, но я немного sed
неграмотный ...
Что-то вроде, начиная с самого верхнего каталога:
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
файлы там и запустите команду, чтобы попробовать ее, прежде чем пробовать ее с вашими живыми файлами.