入力したURLが何であっても、Apacheに単一の静的ページを配信させるにはどうすればよいですか?


9

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

www.addomain.com

にリダイレクトされます

dnsserver.localnetwork

しかし、時々私はより多くのようなリンクに遭遇します

www.addomain.com/some_ad

リダイレクトされます

dnsserver.localnetwork/some_ad

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

index.html実際のリクエストに関係なく、Apacheを機能させる方法がいくつかあることを期待していました。それ以外の場合、Apacheを使用しない代替ソリューションがあれば、私もそれを受け入れます。


1
あなたはapaches mod_rewriteを見ることができます。ドメインの後から/index.htmlへのすべてのリダイレクト
rechengehirn

これは、アドブロッキングを行う非効率的な方法のようです。
パンサー

@ bodhi.zazenどのようにしますか?ほとんどのアドブロッカーは同様のコンセプトで機能します。要求をブロックするか、広告ドメインにリダイレクトします。あなたが持っているのであれば、私はより良い代替案を実装して喜んでいます。
sayantankhan 14年

1
正直に言うと、noscriptとデフォルトのadblockプラグインを使用します。それだけでは不十分な場合は、hostsファイル(維持に手間がかかる)またはプロキシ(privoxy)を使用できますが、ブラックリストを自分で維持するにはさらに手間がかかります。addons.mozilla.org/en-US/firefox/addon/noscriptおよびaddons.mozilla.org/en-US/firefox/addon/adblock-plusを参照してください。ブラウザによっては、別の方法が必要になる場合があります。
パンサー2014年

回答:


18

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ます。


このソリューションでは、JS、CSS、および画像もリダイレクトされます。リクエストの拡張子をチェックする大きな正規表現をせずにこれを防ぐ方法はありますか?
2018年

8

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

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

それはリダイレクトを行います。index.htmlを直接提供しません。
スラング

1

もう1つのより簡単なオプションは、404エラーページを、サイトのすべてのページに表示する静的ページに変更することです。したがって、apache2構成ファイルで次の行(または類似の何か)を探します。

ErrorDocument 404 /errors/not_found.html

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.