Назад | Перейти на главную страницу

Удалите все «Разрешить от всех» с серверов .htaccess

У меня есть доступ к оболочке веб-сервера, который используется для промежуточных сайтов. Излишне говорить, что на нем масса «промежуточных» сайтов.

Пути такие: /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 файлы там и запустите команду, чтобы попробовать ее, прежде чем пробовать ее с вашими живыми файлами.