ロボットを.htaccessで排除する方法

このQ&Aのポイント
  • ロボットを.htaccessでアクセス制限する方法について調べています。ロボットが回遊してきてcgiを実行されることで被害が出るため、.htaccessファイルを使用してアクセス制限をかけたいと考えています。
  • プロバイダーが指定しているディレクトリに.htaccessファイルを配置することで、アクセス制限を掛けることができます。具体的には、/use/local/www/htdocs/user-id/public_html/目的のディレクトリに配置します。
  • フリーウェアのffftpを使用している場合、サーバー側のルートディレクトリに.htaccessファイルを置くことができます。また、他に行うべきことは特にありませんが、必要に応じてcgiファイルなどでの設定を行うことも可能です。
回答を見る
  • ベストアンサー

ロボットを.htaccessで排除したい。

ロボットが回遊してきてcgiを実行され、被害が出るので、 .htaccessでアクセス制限を掛けたく調べています。 .htaccessファイルは以下のとおり作れました。 ***ここから order allow,deny allow from all deny from xxx.xxx.xxx.xxx ***ここまで ただ、このファイルを置く場所が分かりません。 プロバイダーの指定では、 /use/local/www/htdocs/user-id/public_html/目的のディレクトリ と在ります。 これは、.htaccessファイルをここに置け、ということかと思いますが、 ここはどのように指定するのでしょうか。 使っているのは、フリーウェアのffftpです。 ffftpを実行したとき、 サーバー側に表示されているアドレスは / となっています。 そしてそこに、cgi-binフォルダやindex.htmlが表示されています。 .htaccessの説明を読んだ限りでは、 制限を掛けたいフォルダ(ディレクトリ)に置け、となっていました。 であれば、このルート部分に置きたいのですが。 関連でもう一つ、やらなければならないことはこれだけで宜しいのでしょうか。 例えばcgiファイルなどで何か定義し直す必要とか。 宜しくお願いします。

  • Perl
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.1

> プロバイダーの指定では、 > /use/local/www/htdocs/user-id/public_html/目的のディレクトリ > と在ります。 > .htaccessの説明を読んだ限りでは、 > 制限を掛けたいフォルダ(ディレクトリ)に置け、となっていました。 > であれば、このルート部分に置きたいのですが。 .htaccessの設定はサブディレクトリまで有効になるのでどちらでも構いません。 ただ、制限する場所を限定したいのであれば後者ということになります。 余談ですが、ロボット撃退にはもっとすっきりした方法としてrobots.txtがありますが、 既に検討されましたか? http://www.tohoho-web.com/wwwxx079.htm

nagahaha
質問者

お礼

早速ありがとうございました。 置き場所は私が借りているルートで構わないということデスね、 了解です。 なお、robots.rxrは見ていないということです。 それで今回質問しました。 解決したのですが、 折角なので教えて下さい。 プロバイダ指定の場所に置くというのは、 私のルートに置くより上になるのでしょうか。 位置が良く見えません。 宜しくお願いします。

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

ftpでのルートと、HTTPでのルートを混同してませんか? HTTPが提供するのは、あくまで /use/local/www/htdocs/[user-id]/public_html/以下ですから、HTTODのルートはここですよ。  Windowsでも、コンピューター上の場所はC:\DOCUMENT AND SETTIGS\[USER-NAME]\My Documentであっても、エクスプローラのルートに\マイドキュメントが見えるでしょ!!  UNIX系では、マウントやエイリアスは多く使われます。 /use/local/www/htdocs/user-id/public_html/ が、ドキュメントルート(http://hoge.com/)だったり、/use/local/cgi/user-id/がcgiだったり(http://hoge.com/cgi-binだったり・・ きちんと理解しておきましょう。 ・・ローカルにApacheをサーバーを作っておくとよくわかるかも・・  検索エンジンは、基本的にrobot.txtを最初に参照しますからそこに指示を書いておけばよい。膨大なクローラーについていちいち指定はできません。  また、なによりも、ロボットが読みに来たから動作が混乱するようなCGIは書いてはなりません。これが一番肝心なところですよ。

nagahaha
質問者

お礼

いろいろと有り難うございます。 >ftpでのルートと、HTTPでのルートを混同してませんか?  混同ではなく、分かっていないのです。  勉強します。  ヒントを貰えると結構それについては理解できていくのですが、  基本的なことが分かって居ないのだと思います。 >ロボットが読みに来たから動作が混乱するようなCGIは書いてはなりません。  余計なお世話です。

関連するQ&A

  • CGIを使っていないページを.htaccessでアクセス制御

    こんにちは。質問させて頂きます。 不正アクセスをした人を制限する為に.htaccessを使いたいと思っています。 それで.htaccessは掲示板などのCGIではないページ、つまり○○.htmlなどのディレクトリにおく事は可能なのでしょうか?(htmiファイルに対して制限を掛ける事が可能?) そして記述は <Limit GET> order allow,deny allow from all deny from ●●●.domain.com deny from 209.15.00.00 </Limit> <Files ".*"> deny from all </Files> これでいいのでしょうか?ホストとIPがわかっている場合はその両方を続けて記述してもOKなのでしょうか? それとファイル名なのですが、.htaccessだけでいいのでしょうか? ○○.htaccessみたいに任意の名前を付けられないのでしょうか。 転送はアスキーモードとくぃう事ですが、普通のHTMLファイルと同じって事なのでしょうか?そもそも.htaccessはCGIとは違うので、cgiのディレクトリにいれなくてもいいんですよね?Parlのパスも記述しなくていいみたいですし。 疑問点が多いので申し訳ないのですが、どうか宜しくお願い致します。

  • .htaccessでのアクセス制限<wakwak

    こんにちは。 wakwakでHPを作成しています。 実はトラブルがあり、アクセス制限をしたいのですが、 パスワードを入れるタイプではなく、 ある特定のIPの人だけを制限したいと思い、 .htaccessファイルの中に <Limit GET POST PUT> order allow,deny allow from all deny from xxx.xxx.xx. </Limit> (xxxはきちんと指定しています) と記述して転送しようとしたのですが Permission denied on server(Filename(deny)) と出て転送できません。 これはつまりwakwakでは拒否できないように してあるのでしょうか。 週明けにサーバー管理者に質問すればいいんですが できれば早いうちに制限をしたいと思っています。 (しかもそういう制限をしたことを知られたくないため レンタルアクセス制限などバナーが出るものは 避けたいと思っています) denyが使えないとしてCGIを使うタイプとか パスワードを指定しない形で 特定のIPをアクセス制限する方法はあるのでしょうか。 よろしくお願いします。

  • .htaccessで時間制限したい

    自分のHPのうち、特定のディレクトリ内のファイルへのアクセスを、時間によって制限したいと思っています。 「2009年9月1日午前0時が来るまで、このディレクトリへのアクセスはすべてdeny」という制限をするには、.htaccessになんと書けばよいでしょうか。 order allow,deny allow from all deny ??????

  • .htaccessが効かない??

    メール収集ソフトや、短い時間に何度もアクセスする迷惑なIPを、CGIを用いて自動で.htaccessに書き込み、制限を行っているのですが、あるIPからのアクセスのみ、下記のように書き込んだのでは効果がありませんでした。 因みに、自身のIPを書き込んでテストしたところ確実にはじかれました。 .htaccessはかなり信用していたのですが何度もページにアクセスされているようで困っています。 どのようにすれば防げるでしょうか? どなたか、ご存知の方、宜しくお願い致します。 Order allow,deny Allow from all Deny from 61.192.XXX.XX 注:Xには数字が入っています。一応、伏せています。

  • htaccess??

    .htaccessを設置したいのですが、.htaccessではいろいろな条件を拒否したり許可したりできますよね? たとえば、指定したホストからのアクセスを拒否したい、と同時に画像の直リンクを防ぎたい。という場合、どう表記すればいいのでしょうか? order allow,deny deny from all deny from xxxxx(拒否したいホスト) deny from xxxxx SetEnvIf REFERER "xxxxx(自サイトのURL )" Ref1↓ Order Deny,Allow↓ Deny from all↓ Allow from env=Ref1↓ AddHandler cgi-script htaccess とこんな感じでつらつらと並べていいものでしょうか? 初歩的な質問でごめんなさい。 良かったら教えてください。

  • .htaccessについて(超初心者です)

    本当に初歩的な質問で申し訳ないのですが、 アクセス制限をかけたくて.htaccessについて調べています。 「制限をかけたいディレクトリに、.htaccessという名前のファイルを作成すればいい」ということが書いてあるのですが、その意味がわかっておりません・・・ たとえば、ホームページのアドレスがhttp://oshiete1.goo.ne.jp/index.html だとしたら http://oshiete1.goo.ne.jp/.htaccess とすれば良いのでしょうか? そして、ファイルのヘッド内のhtmlと一緒に order allow,deny allow from all deny from (はじきたいホスト) を書けばいいのですか? ホームページの全てのページではなく、特定のページを特定のホストから拒否したいのですが、その方法なども教えていただけますでしょうか。 本当に何もわかってなくてお恥ずかしいのですが、どうぞよろしくお願いいたします。

  • アクセス制限について

    初めまして。 質問の内容ですが、www直下においてある.htaccessに動作確認の為自分のホストをdenyするように記述しても、フォルダBにあるファイルにアクセスできてしまいます。フォルダAのバナーは表示されなくなるのですが…。 ロボ避けが働かないと困るので、何とか機能させたいと思っています。ディレクトリの構成と内容は以下の通りです。 | .htaccess | フォルダA(直リンクバナーを置いています)   |-.htaccessなし | フォルダB(サイト本体です)   |-.htaccessあり | フォルダC(制限にかかった時表示するファイルを置いています)   |-.htaccessあり ==========直下の.htaccess=========== DirectoryIndex index.html .ht order allow,deny allow from all deny from xxx.xxx.xxx.xxx deny from 自分のホスト名 <Files ~ "^\.ht"> deny from all </Files> <Files robots.txt> order deny,allow allow from all </Files> ==========フォルダB=========== DirectoryIndex index.html .ht ErrorDocument 403 /フォルダC/403.html order allow,deny allow from all deny from yyy.yyy.yyy.yyy <Files ~ "^\.ht"> deny from all </Files> ====================== です。長くてすみません。 以前動作確認した時はちゃんと弾かれていたのですが、最近フォルダBにある.htaccessを編集した時に再度動作確認してみると弾かれなくなっていました。 フォルダBに自分のホストをdenyするように書くとちゃんと機能します。どの辺りをいじればいいでしょうか?

    • ベストアンサー
    • HTML
  • htaccessでのErrorDocumentが出来ない…

    初めての質問なので、おかしな所があったら突っ込んでやってくださいm(_ _)m サーバーはApacheの2.0.53を使っています。 OSはWindowsXPです。 htaccessのErrorDocumentを使って、エラーページに自分で作ったものを表示させようと思ったのですが、500の内部エラーがでてしまいました。 「ErrorDocument 404 /404.html(改行)」 という設定で、404.htmlファイルはhtaccessと同じディレクトリにおいてあります htaccess自体はホスト制限の order allow,deny allow from all deny from ---.---.--.-- 等の設定で動作してるのでhtaccessが使えないということは無いと思います。 Apacheのエラーログには ErrorDocument not allowed here と表示されていますが、いまいち理解ができなくて困っています。 何か手がかりだけでもいいので教えてもらえないでしょうか?お願いしますm(_ _)m

  • htaccessで、特定IP以外をリダイレクトさせたい。

    初心者です。 .htaccessを使ってメンテナンス画面を表示させようと思っています。 条件として、 ・特定のファイルへのアクセスを、リダイレクトさせる。 ・動作確認を行うため、自分のIPの場合はリダイレクトさせない。 ファイルに対してのリダイレクトは、 Redirect /aaa/aaa.php /maintenance/maintenance.html 特定IPに対して、ディレクトリ単位のリダイレクトは、 order deny,allow deny from all allow from xxx.xxx.xxx.xxx ErrorDocument 403 /maintenance/maintenance.html というところまでは解決したのですが、 「特定IPに対して、ファイル単位のリダイレクト」 は、どのように指定すればよいのでしょうか?

    • ベストアンサー
    • HTML
  • .htaccess の検索除けで、

    .htaccess の検索除けで、 CGIディレクトリをクロール巡回されたくないのです。 まずは、ルートにrobots.txtで、 User-agent: * Disallow: /cgi/ バイドゥが無視するらしいので、/cgi/内にも.htaccess で、 SetEnvIf User-Agent "Baidu" deny_ua SetEnvIf User-Agent "Baiduspider" deny_ua order allow,deny allow from all deny from env=deny_ua と書きました。こうで、バイドゥは排除できると思うのですが、 「バイドゥはダメですよ」と書いてあるのでしょうか? それとも 「他は許可するけどバイドゥはダメですよ」 と書いてあるのでしょうか? 頭が混乱して良く分からなくなりました。 バイドゥ以外のクローラーが、/cgi/に来ちゃいますか? 回答お願いします<(_ _)>