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

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>

Если у вас есть виртуальные хостыОбратите внимание, что по умолчанию конфигурации перезаписи не наследуются виртуальными хостами. Чтобы «наследовать» директивы в конфигурациях vHost, каждой конфигурации vHost необходимы:

RewriteEngine on
RewriteOptions Inherit

Увидеть Документация Apache для RewriteOptions директива для более подробной информации.

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

Для Apache 2.4:

<FilesMatch "(readme\.html|changelog\.txt)$">
  Require all denied
</FilesMatch>

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

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

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

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

ПРИМЕЧАНИЕ. ServerAlias ​​необходимо добавить после

</Directory>

тег и перед </Virtualhost> тег

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

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

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

Возиться с основным apache2.conf не рекомендуется, если вы сначала не поймете, куда были перемещены все те настройки, которые раньше были в apache2.conf. Все они сейчас находятся в разных файлах .conf.