• ベストアンサー

.htaccessで特定URLからのアクセス拒否

かなり困った場所からサイトインデックスへ リンクを貼られていることに気づき、急いで .htaccessを使ってそのURLからのアクセスを拒否しようとしたのですが、 機能せず困っています。 どなたかアドバイス頂けると嬉しいです。よろしくお願いいたします。 ●「.htaccess」「アクセス拒否」「拒否」などの検索でひかっかる  関連サイトさんは、ある程度見て回ったと思います。 ●サーバ:ロリポップ ●特定IPホスト拒否、自作エラーページなどは正常に機能しました。 ●拒否したいURLはhttp://付、なし、両方試したのですが駄目でした。 ●パーミッション:604 ●index.htmlと同じ階層にファイルをおいてあります。 ●拒否したい相手の鯖はFC2です。 .htaccess内には現在下記のように記述してアップしてあります。 ↓は改行部分です。 -------------------------------------------------------- SetEnvIf REFERER "xxxxxxxxx.com" Ref1↓ ↓ Order Allow,Deny↓ Allow from all↓ Deny from env=Ref1↓ ↓ ↓ ErrorDocument 404 /404.html↓ ↓ -------------------------------------------------------- 以上の状況なのですが。 何かしら私のミスなのか。 それとも、サーバによって使える指示使えない指示などがあったりするのか。 鯖によっては他になにか記述すべきものがあるなど・・。 .htaccessについての知識がほぼ皆無なので 一体どの原因で、機能しないのかの判別すらつけられていない状態です。 その判別だけでも出きれば、調べたり、他の対応を探すなど 今後のどう行動するべきか判断できそうなので、 そこだけでも何かアドヴァイス頂けると非常に助かります。 分りづらい説明で申し訳ないですが、宜しくお願いいたします。

  • HTML
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
回答No.1

判る範囲でだけ、、、 一旦Allow とDenyを逆に記述しxxxxxxxxx.comかジャンプしたばあいのみアクセス出来るか確認してください あと、セキュリティSOFTを使っていた場合REFERERは吐かない場合も多いので、 その場合REFERERを使った制限は.htaccessにしろCGIにしろ無効になりますね。 http://www.shtml.jp/htaccess/referer.html http://service1.symantec.com/SUPPORT/INTER/nisjapanesekb.nsf/jp_docid/20021020160209947 >サーバによって使える指示使えない指示などがあったりするのか。 ApacheでSetEnvIf が.htaccessで有効になったのは1.3.13以降だそうです http://www.apache.jp/docs/mod/mod_setenvif.html#setenvif Apacheのバージョンを調べるにはTelnetで80アクセスするとか又は、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2048321 の#2に書いたようなCGIを設置してみれば判ります。 あとはAllowOverrideの設定もありますが AllowOverride All=>全部有効 AllowOverride None =>全部無効 それ以外(一部機能のみ許可)=>許可されていない機能を記述するとUAアクセス時にServerErrorになる ので、この件の場合はAllowOverrideに関してはOKかと

m23junk
質問者

お礼

こちらでアドバイス下さった皆様にまとめてお礼させていただきます。 合同ですいません。 皆様とても丁寧で親切なご回答本当に有難うございました。 皆様の回答を色々読ませていただき試した結果。 どうやら一番初歩的なセキュリティソフト的な問題だったようで、成功はしていても私の閲覧環境では無効になっていたようでした。 本当に初心者的なことでこちらに質問してしまって本当に申し訳ありませんでした。 でもこちらで色々アドバイス頂けたことで そのミスに気づけたので、とても助かりました。 有難うございます!!

その他の回答 (2)

回答No.3

まだ解決していませんか? ならば環境変数Ref1 と 同じくHttp_Refererを表示させてみてください。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2048321 の#2で書いたのは環境変数一覧を表示するcgiですが SetEnvIf REFERER "xxxxxxxxx.com" Ref1 が正しく機能していれば $ENV{'REF1'} = 1 と言う行が表示されるはずです サイトインデックスと言うことですので手順を書いておきます。 1.同じ階層に環境変数一覧CGIをenv.cgiという名前で設置し、 まずは直接アクセスして普通に環境変数が表示されることを確認 2.index.htmlなりをSSI有効にしてページ下部に <!-- <!--#exec cgi="./env.cgi"--> --> (ページ上に表示させたくない場合です。) と記述する 3.件のリンク元のリンクをクリックして 先ほどのindex.htmlにジャンプしてページソースを見る 4.ENV{'HTTP_REFERER'} と言う項目が無い場合は  ブラウザがHTTP_REFERERを吐いていないと言うことです 5.ENV{'HTTP_REFERER'}=http://xxxx.com/ のように予想通りのREFERERを吐いているのに ENV{'REF1'} と言う項目が無い場合は .htaccessのSetEnvIf REFERER "xxxxxxxxx.com" Ref1 行が機能していない、マッチングしてない という事です。 6.ENV{'REF1'} =1 と表示される場合は(403になっていないと言うことですが) SetEnvIf REFERER "xxxxxxxxx.com" Ref1 は正しく機能しているが  Deny from env=Ref1 が機能していないと言うことです

  • 123isao
  • ベストアンサー率54% (186/341)
回答No.2

サイトインデックスというのは/で終わったURLでファイル一覧が表示されてしまうことでしょうか? その場合はOptions -Indexesの一行を入れれば見られなくなります。 サーバのロリポップも記述している内容も問題ないと思います。 もしかして下の階層のディレクトリに.htaccessファイルがあって上書きされているのではないですか?

参考URL:
http://htaccess.pasoa.com/

関連するQ&A

  • .htaccessのアクセス制限のことで

    レンタルサーバーを利用してブログをやっております。 最近、海外からのスパムが多くなり、.htaccessを設置してアクセス制限をかけようかと思い.htaccessファイルを設置しましたらページそのものが見れなくなってしまいました。 order deny,allow deny from all allow from .jp SetEnvIf Referer "拒否ドメイン" deny_ref order allow,deny allow from all deny from env=deny_ref このような書き方は間違えているのでしょうか。 こちらのやりたい事としましては、海外からのアクセスを拒否、日本でも一部のドメインの拒否、一部のサイトからの直リンク拒否です。 どうそ、よろしくお願いします。

  • .htaccessでのアクセス拒否について

    .htaccessでlocalhostを拒否したいので order allow,deny allow from all deny from localhost と記述してサーバーにアップしたのですが、 localhostからのアクセスを拒否できていません。 localhostからのアクセスを拒否するにはどうしたらよいのでしょうか?

    • ベストアンサー
    • HTML
  • .htaccessの更新とIP拒否

    検索避けの為、meta/robots.txt/.htaccessを入れています。 今入れてるのは以下の.htaccessですが SetEnvIf REFERER "search.yahoo.co.jp" Ref1 SetEnvIf REFERER "google.co.jp/search" Ref2 SetEnvIf REFERER "excite.co.jp/search" Ref3 SetEnvIf REFERER "infoseek.co.jp/OTitles" Ref4 SetEnvIf User-Agent "Googlebot" Ref5 SetEnvIf User-Agent "Slurp" Ref6 SetEnvIf User-Agent "msnbot" Ref7 Order Allow,Deny Allow from all Deny from env=Ref1 Deny from env=Ref2 Deny from env=Ref3 Deny from env=Ref4 Deny from env=Ref5 Deny from env=Ref6 Deny from env=Ref7 入れて数ヶ月は検索結果に全く出なかったので「あー効いてるかな?」と思っていたのですが、先日yahooでにて自サイト名で検索かけたら一番上にヒットしました。 一応、そこから飛んでも403エラーが出て直接は来れないようになってはいますが…。クローラーに拾われるのは避けられてないってことですよね。 .htaccessの記述は最初のままなんですが、これって記述をたびたび変更したほうが良いのでしょうか?(たとえば順番や名前を変えるなど) 記述やクローラーの最新情報というものがなかなか見つからないので、けっこう前のデータを参考に作っているので…。 更にIPでも弾こうかとも考えていますがどのように表記するのが効果的でしょうか?

  • .htaccessについておしえてください。

    外部からjsファイルを直リンクなどで、見られないようにできないかと考えています。.htaccessで特定のサイトからのみ参照を許可するという記事を見ました。 例えばヘテムルのサーバでhttp://abc.heteml.jp/def/index.htmlからの参照を許可するのに、.htaccess に以下のように書きました。 SetEnvIf Referer "http://abc.heteml.jp/def/index.html" allow_ref SetEnvIf Referer "^$" allow_ref order deny,allow deny from all allow from env=allow_ref .htaccess については全然分かっていません。記事に載っていた内容を少し変える程度なので、詳しく教えていただきたいと思い、投稿しました。jsファイルを見られないようにすることはできるのか?また、.htaccessの参考サイトなどあれば教えてください。

  • 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を使って「特定のIPアドレス・ホストからのアクセスを拒否」と 「特定のリンクからのアクセスを拒否 」の2つを一緒に設定したいのですが、 どうすればいいのでしょうか? 単独での書き方はそれぞれ調べて分かったのですが、1つにまとめての記述方法が分かりません。 --------------------------------------------------- order allow,deny allow from all deny from ●● deny from ○○ deny from ▲▲ deny from △△ SetEnvIf REFERER "http://○○○.com/" Ref1 Order Allow,Deny Allow from all Deny from env=Ref --------------------------------------------------- といった感じに記述したものの、全く動作してくれません。 ご存知の方いらっしゃいましたら、宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • .htaccessについて教えてください。

    添付した画像のようなディレクトリ構造のサイトをつくりAndroidとiPhoneからのアクセスのみを許可するように (1)の.htaccessには SetEnvIf User-Agent "Android" ok1 SetEnvIf User-Agent "iPhone" ok2 order deny,allow deny from all allow from env=ok1 allow from env=ok2 と記述し、 http://adcde.heteml.jp/access/index.htmlからだけのjsファイルへのアクセスを許可しようと (2)の.htaccessには SetEnvIf Referer "^http://adcde\.heteml\.jp" ShowOK SetEnvIf Referer "^$" ShowOK <Files ~ "\.(js)$"> order deny,allow deny from all allow from env=ShowOK </Files> と記述しました。 PCからhttp://adcde.heteml.jp/accessとすると403 errorForbiddenとなり思ったようにいくのですが、PCからhttp://adcde.heteml.jp/access/js/test.jsとするとjavascriptの中身が表示されてしまいます。 AndroidとiPhone以外からのアクセスは(1)の.htaccessで拒否されるのでは?また、(2)の.htaccessでjsファイルへの直リンクを避けているのでは?と、うまくきません。.htaccessの記述や設置する場所、またヘテムルのサーバー側の原因かなどを教えていただきたく思い投稿しました。いろいろなサイトを調べながらの.htaccessの知識で、あまりよく分かっていません。詳しく教えていただければありがたいです。よろしくお願いします。

  • .htaccessによる検索結果からのアクセス拒否

    サイトにロボ避けをかけていたのですが、yahooのみ登録されてしまいました。 yahooトップの検索で自サイトの名前(普段でもよく使うような名詞)のみ入力し検索をかけるとけっこう上位に入ってしまう状態です。キャッシュは表示されていません。 なので、主要な検索サイトによる検索結果からのアクセスを拒否したいと考え、はじめて.htaccessを設置してみたのですが…設定やパーミッションなどはあっているはず(テストページでやってみたらきちんとエラーが出た)…なのですが、実際に入口(注意書き付き)index.htmlが置いてある一番上のルートディリクトリに.htaccessを置いてみたところ、機能していないようでした。 アドレスバーにurlを直接入力しても行けてしまいます。 どこか置く場所などが間違っているのでしょうか。 そもそも、.htaccessを置いて「検索結果一覧に表示された自サイトのurlリンクから飛ぶのを拒否する」ことは可能なのでしょうか?一度登録されてしまうと無理なのか…ちょっと解らなくなってしまいました。 サーバーはロリポップを使用しており、.htaccessは有効です。 ちなみに.htaccessファイルの内容は以下の通りです。 SetEnvIf REFERER "yahoo.co.jp/search" stop SetEnvIf REFERER "yahoo.com/search" stop SetEnvIf REFERER "excite.co.jp/search" stop SetEnvIf REFERER "infoseek.co.jp/OTitles" stop SetEnvIf User-Agent "Googlebot" stop SetEnvIf User-Agent "Slurp" stop SetEnvIf User-Agent "msnbot" stop Order Allow,Deny Allow from all Deny from env=stop 初心者でお恥ずかしい限りですが、教えて頂けると幸いです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • .htaccess の書き方について教えてください。

    こんにちは、質問させてください。 webサイトを運営しており、.htaccessによるアクセス規制を検討しています。 下記のように複数のアクセス規制をしたい場合、どのように書けば良いでしょうか? ○特定IPアドレスからのアクセス ○プロキシ経由でのアクセス ○特定URLからのアクセス 過去ログ等を検索してみて、現在、以下のようなソースにしています。 ------------------------------------- #特定IPとプロキシ経由の拒否 order allow,deny allow from all deny from ***.***.**.*** order deny,allow deny from all allow from .jp allow from .net allow from .com #特定アドレスからのアクセス拒否 SetEnvIf Referer "http://sample.url.com" ref01 order Allow,Deny Allow from all Deny from env=ref01 ------------------------------------- プロキシ経由の場合、すべてを弾くのは難しいと思いますが… 何か他に良い書き方がありましたら、アドバイスをお願いします。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • htaccessで直リンク防止をしたらindexが見れない…

    htaccessの記述で困っております。 初歩的なミスをしているのかもしれませんが、何かお気づきの点がありましたら教えてください。 htaccessで設定したいこと: ・外部からの全ファイルへの直リンクを避けたい ・でも一部のファイルは直リンクを許可したい(バナー画像やindexなど) 手探りで記述してみたところ、なんとか成功したのですが トップページへのアクセスがはじかれてしまいます。 http://●●●/index.html にはアクセスできますが http://●●●/ だと表示されない、という状態です。 index.htmlに直接アクセスされても実質的には変わらないのですが、 できればアドレスを短くすっきりさせたいんです。 SetEnvIf Referer "^http://●●●/" ref01 order deny,allow deny from all allow from env=ref01 <Files ~ "^(banner\.jpg|index\.html|http://●●●/)$"> allow from all </Files> 何か改善点はないでしょうか?

専門家に質問してみよう