web-dev-qa-db-ja.com

入力したURLに関係なく、Apacheが単一の静的ページを提供するようにするにはどうすればよいですか?

すべての広告ドメインを Apache のインスタンスにリダイレクトする広告ブロックDNSサーバーを作成しています。のようなもの

www.addomain.com

にリダイレクトされます

dnsserver.localnetwork

しかし、時々私はより多くのリンクに出くわします

www.addomain.com/some_ad

にリダイレクトされます

dnsserver.localnetwork/some_ad

存在しないため、404エラーが発生します。

実際のリクエストに関係なく、Apacheがindex.htmlを提供する何らかの方法があることを望んでいました。それ以外の場合、Apacheを使用しない別のソリューションがある場合は、私もそれをやっています。

9
sayantankhan

Ubuntuでは、 mod_alias が有効になっていることを確認してください。

Sudo a2enmod alias

次に、VirtualHostディレクティブで AliasMatch を使用できます。

例:

<VirtualHost *:80>
    DocumentRoot /path/to/your/Host
    ServerName yourdomain.com
    DirectoryIndex index.html

    AliasMatch ^/(.*)$ /path/to/your/Host/index.html

    <Directory "/path/to/your/Host">
      Require all granted
    </Directory>
</VirtualHost>

これで、すべてが/index.htmlにリダイレクトされます。

18
rechengehirn

.htaccessファイルに書き換えルールが必要です。次のようなものが機能するはずです。

RewriteRule ^*$  http://www.addomain.com/index.html [R=301,NC,L]
8
Tom Damon

もう1つの簡単なオプションは、404エラーページを、サイトのすべてのページに表示する静的ページに変更することです。したがって、Apache2構成ファイルで次の行(または同様の行)を探してください。

ErrorDocument 404 /errors/not_found.html

そして、「/ errors/not_found.html」を「/index.html」に変更します

1
brfox