web-dev-qa-db-ja.com

apache2.confは、サーバーでホストされているすべてのサイトのグローバルリダイレクトを書き込みます

/etc/Apache2/Apache.confファイルに次のようなルールを追加しようとしましたが、気づかれていませんでしたが、個々の.htaccessファイルに追加すると、従われ、readme.htmlにアクセスしようとする人がいます。ファイルはリダイレクトされます。次のルールを追加しましたが、ServerSignatureServerTokensのものを含めてそれらのいずれにも気づかれません。OSはdebian7wheezyです。

ServerSignature Off
ServerTokens Prod

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule readme\.html? - [NC,F]
    RewriteRule changelog\.txt? - [NC,F]
</IfModule>
1
Kravitz

仮想ホストがある場合、デフォルトでは、書き換え構成は仮想ホストに継承されないことに注意してください。 vHost構成のディレクティブを「継承」するには、各vHost構成に次のものが必要です。

RewriteEngine on
RewriteOptions Inherit

詳細については、 RewriteOptionsディレクティブのApacheドキュメント を参照してください。

mod_rewriteを使用せずに、これら2つのファイルをサーバー全体で拒否するには、適切なアクセス制御ディレクティブで <FilesMatch> container を使用することもできます。

Apache 2.4の場合:

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

まず、リダイレクトしようとしているものがわかりませんが、最初に、各Webサイト(vhost)の書き換えルールは、リダイレクトを追加する場所であり、これらのリダイレクトは永続的であり、リダイレクト301を使用して行う必要があります。

それ以外の迅速で厄介な解決策は、a2dissiteを使用してApache上の他のすべてのWebサイトを無効にすることです。ここにmanページがあります--- http:// manpages.ubuntu.com/manpages/trusty/man8/a2dissite.8.html

次に、すべてのドメインをエイリアスとして000-default.confファイルに追加します。

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

注:ServerAliasは、

</Directory>

タグと</Virtualhost>タグの前

これは、サーバーを指すドメインはすべて、/ var/www /にあるデフォルトのApacheWebサイトによって応答されることを意味します。

次に、Apacheが異なるファイルから設定を呼び出すことを理解してください。あなたがいじっているそれらのセキュリティ設定はすでに/ etc/Apache2/conf-available/security.confと呼ばれるファイルにあります

そのファイルで変更する必要がある場所は次のとおりです。ServerSignatureOffServerTokensProd

Apache2.confにあったすべての設定がどこに移動されたかを最初に理解しない限り、メインのApache2.confをいじることはお勧めできません。それらはすべて、現在、さまざまな.confファイルにあります。

0
MitchellK