apache2.conf записывает глобальное перенаправление для всех сайтов, размещенных на сервере

Я пытался добавить правила, подобные приведенным ниже, в файл /etc/apache2/apache.conf, но они не были замечены, тогда как если я добавлю их в отдельный .htaccess файлы им подчиняются, и любой, кто пытается получить доступ к файлу readme.html, будет перенаправлен .. Я добавил следующие правила, но ни одно из них не замечено, включая ServerSignature ServerTokens .. ОС - debian 7 wheezy

ServerSignature Off
ServerTokens Prod

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule readme\.html? - [NC,F]
    RewriteRule changelog\.txt? - [NC,F]
</IfModule>
1
задан 22 June 2018 в 01:52
2 ответа

Если у вас есть виртуальные хосты, обратите внимание, что по умолчанию Rewrite конфигурации не наследуются виртуальными хостами. Для того, чтобы "наследовать" директивы в конфигурациях vHost, каждая конфигурация vHost должна:

RewriteEngine on
RewriteOptions Inherit

Смотрите документацию Apache для директивы RewriteOptions для более детального ознакомления.

Чтобы запретить доступ к этим двум файловым серверам без использования mod_rewrite, можно также использовать контейнер с соответствующей директивой управления доступом.

Для Apache 2.4:

<FilesMatch "(readme\.html|changelog\.txt)$">
  Require all denied
</FilesMatch>
1
ответ дан 3 December 2019 в 23:46

Во-первых, я не понимаю, что вы пытаетесь перенаправить, но сначала правила переписывания для каждого сайта (vhost) - это то, куда должны быть добавлены редиректы, а из этих редиректов постоянные вы должны делать их с помощью Redirect 301

Кроме того, быстрым и неприятным решением является отключение всех остальных сайтов на apache с помощью a2dissite, вот man-страница - http: //manpages. ubuntu.com/manpages/trusty/man8/a2dissite.8 .html

Затем просто добавьте все домены как псевдонимы в ваш файл 000-default.conf, добавив

ServerAlias myfirstdomain.com myseconddomain.com www.myfirstdomain.com

NOTE: ServerAlias должен быть добавлен после тега

</Directory>

и до тега

Это означает, что на любой домен, указывающий на ваш сервер, будет отвечать ваш сайт apache по умолчанию, расположенный в /var/www/

Во-вторых, пожалуйста, поймите, что Apache звонит с настройками из разных файлов. Настройки безопасности, с которыми вы возитесь, уже находятся в файле под названием /etc/apache2/conf-available/security.conf

В этом файле вы должны изменить его: ServerSignature Off ServerTokens Prod

Messing with the main apache2.conf не рекомендуется, пока вы не поймёте, куда были перенесены все настройки, которые были в apache2.conf. Все они сейчас находятся в разных .conf файлах.

0
ответ дан 3 December 2019 в 23:46

Теги

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