Похожие вопросы

Почему мой локальный сайт отображает тестовую страницу Apache2
Развертывание Django с помощью Phusion Passenger-ошибка загрузки файла
Не удалось найти указанный модуль (Mod h264 streaming) (Apache2)?
Почему hydra не возвращает действительное имя пользователя и пароль с действительным именем пользователя и паролем
не удалось открыть поток слишком много открытых файлов-php 1024 максимальный лимит-Redhat-почему не работает новый лимит?
Как проверить, если файл обслуживается Apache или nginx (nginx обратный прокси)
Насколько безопасен мой личный Докувики, размещенный на веб-сервере?
http://localhost/phpmyadmin/index.php "говорит, что сайт не может быть достигнут". Apache не удается запустить
Настройки Apache HTTPS в Амазон WS с АСМ
Прямой домен на IP и порт?
Apache 2.2 на Windows как сервис, как удалить ошибку.журнал? (сохранение ошибок)
Как запустить phpMyAdmin?
Права доступа к файлам Laravel для apache
Отправлять трафик apache только через VPN
Как определить, почему порт 443 уже используется?

Использование sed для включения.файлы htaccess в конфигурации Apache

Я пытаюсь автоматизировать подготовку коробки Ubuntu бродяга с сценарием Bash. Все хорошо, но у меня возникли трудности с настройкой Apache, чтобы разрешить переопределения .htaccess файлы. В моем конфигурационном файле есть следующий блок:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

все, что мне нужно сделать, это заменить AllowOverride None С AllowOverride all. Это, кажется, задача для sed, но есть и другие <Directory> блоки в этом конфигурационном файле, где я не хочу, чтобы переопределить.

как я могу использовать sed, чтобы заменить определенную строку новой строкой, когда эта конкретная строка возникает между двумя другими определенными строками?

другими словами, как я могу заменить AllowOverride None только когда он появляется между <Directory /var/www/> и </Directory>?

я могу использовать следующую команду, чтобы получить блок меня интересует:

sed -n '/<Directory /var/www/>/,/</Directory>/p' 000-default
5
задан JakeGould
источник

1 ответов

sed поддерживает диапазоны шаблонов в следующем виде:

sed '/startpattern/,/endpattern/ <sed-commands>' file

например:

sed '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride all/' httpd.conf
11
отвечен suspectus 2015-10-14 17:19:06
источник

Другие вопросы apache-http-server bash linux sed ubuntu