Я пытался добавить такие правила, как следующие, в файл /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.