編集: Cron は問題ありませんでした。私は を回すのを忘れていましたRewriteEngine On
。他の誰かが同じことをしたい場合に備えて、ここに残しておきます。
Apache を使用してからしばらく経っているので、これはおそらく単なる構文の問題です。すべてのtorユーザーを私のドメイン ( ) の特定のページにリダイレクトして、隠しサービスを実行していて、隠しサービス経由でサイトにアクセスする必要が/tor.php
あることを知らせようとしています。
非表示のサービスは%{REMOTE_ADDR}
127.0.0.1 と表示されるため、cron で 1 日 1 回 tor IP リストを取得し、それをsed
操作して my .htaccess
. これは私がこれまでに思いついたものです:
#!/bin/bash
#
# Cron job to get a list of TOR IP addresses and redirect to tor.php
sed -in '/#\ TOR-REDIRECT-BLOCK/,/#\ END-TOR-REDIRECT-BLOCK/d' /path/to/www/.htaccess
wget -q https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=my.server.ip.address -O - | sed '/^\#/d' | sed "s/^/RewriteCond %{REMOTE_ADDR} ^/g; s/\./\\\./g; s/$/\$ \[OR\] /g; 1i# TOR-REDIRECT-BLOCK" >> /path/to/www/.htaccess
echo "RewriteCond %{REMOTE_ADDR} ^0\.0\.0\.0$" >> /path/to/www/.htaccess
echo "RewriteCond %{REQUEST_URI} !^/tor.php$" >> /path/to/www/.htaccess
echo "RewriteCond %{REQUEST_URI} !^/tor.css$" >> /path/to/www/.htaccess
echo "RewriteRule ^(.*)$ /tor.php [R,L]" >> /path/to/www/.htaccess
echo "# END-TOR-REDIRECT-BLOCK" >> /path/to/www/.htaccess
# TOR-REDIRECT-BLOCK
これにより、とで囲まれた古いブロックが削除# END-TOR-REDIRECT-BLOCK
され、次のような IP リストに基づいて新しいブロックが追加されます。
# TOR-REDIRECT-BLOCK
RewriteCond %{REMOTE_ADDR} ^103\.4\.16\.118$ [OR]
RewriteCond %{REMOTE_ADDR} ^106\.187\.36\.183$ [OR]
RewriteCond %{REMOTE_ADDR} ^106\.187\.36\.240$ [OR]
RewriteCond %{REMOTE_ADDR} ^106\.187\.37\.158$ [OR]
...
RewriteCond %{REMOTE_ADDR} ^99\.230\.106\.155$ [OR]
RewriteCond %{REMOTE_ADDR} ^0\.0\.0\.0$
RewriteCond %{REQUEST_URI} !^/tor.php$
RewriteCond %{REQUEST_URI} !^/tor.css$
RewriteRule ^(.*)$ /tor.php [R,L]
# END-TOR-REDIRECT-BLOCK
この後、Tor Browser をロードしてナビゲートしようとしhttp://mydomain/phpinfo.php
ます (これは Apache パスワードで保護されているため、このファイルは公開されません)。phpinfo.php
にリダイレクトする代わりにロードしtor.php
ます。REMOTE_ADDR
inは、リダイレクトされるはずphpinfo.php
のファイル内の IP アドレスのリストにあります。.htaccess
有効にmod_rewrite
したので問題ありません。私の-foo は、最後の行を除くすべての行に追加する方法を覚えるのに十分ではない0.0.0.0
ため、ルールがあります。どんな助けでも大歓迎です。sed
[OR]