iptablesを使用してドメインのサブページに対するhttpリクエストを別のアドレスにリダイレクトする方法

iptablesを使用してドメインのサブページに対するhttpリクエストを別のアドレスにリダイレクトする方法

私は設定しました。
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.8.1:200
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
-A FORWARD -i eth0 -o wlan0 -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

アドレスが192.168.8.1:200のApacheで仮想ホストサーバーを実行しているのにうまく機能します。ページのリダイレクトは機能しますが、たとえば最上位のドメイン要求に対してのみ機能します。www.google.comにリダイレクトされますhttp://localhost/

しかし、問題は、www.google.com/subpageまたはの要求のwww.anotherPage.com/subdir/subsubdir/pageためにApacheで404エラーが発生します。これらのサブページ要求を私のローカルホストのルートにリダイレクトしたいと思います。

注: htaccess 書き換え規則を設定できますが、要求をhttp://localhost/subdir/subpages。私はこれをしたくないので、合理的なアドバイスは何ですか?

答え1

.htaccess欲しいものだけをリダイレクトしてください。正しく実行するだけです。

RewriteCond %{HTTP_HOST} =!localhost [NC]
RewriteRule .* http://localhost/

答え2

@Hauke Lagingの答えに苦しんで、.htaccessが私が欲しいフォルダにあることを確認しました。つまり、/var/www次のコードを書きました。 RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f#if the requested is non existent as a file RewriteCond %{REQUEST_FILENAME} !-d#if the requested is non-existent as a dir RewriteRule (.*) / [L]

今、すべてが大丈夫です。存在しないファイルまたはディレクトリを要求すると、ルートディレクトリにリダイレクトされます。それでもNAT設定が残っており、Wi-Fiの全員が自分のローカルホームページに移動することに注意してください。 。 。アドレスバーに何を入力しても構いません。

関連情報