• ベストアンサー

htaccessで参照元制限

参照元によるアクセス制限で、許可する参照元をhttp://domain.com/にし、許可する拡張子を.htmlにしたいと考えています。http://domain.com/*.htmlというような書き方はできないのでしょうか? SetEnvIf Referer "^http://domain.com/" ref_ok order deny,allow deny from all allow from env=ref_ok

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

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

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

* によるワイルドカートでhtml全部を指定したい場合は * の前に . (ドット)をつけることで可能です 正規表現を見やすくすると下記のような感じでしょうか SetEnvIf Referer "^http://domain\.com/.*\.html$" ref_ok order deny,allow deny from all allow from env=ref_ok この場合http://domain.com/で始まって.htmlで終れば参照OKとなります ( ^ は先頭、$ は末尾であること明示的に示します) ■参照OKな例  http://domain.com/index.html からのアクセス  http://domain.com/hoge/foo.html からのアクセス ただ、この場合index.htmlを省略して / で終った場合参照NGとなるので SetEnvIf Referer "^http://domain\.com/.*\.html$" ref_ok の次行に SetEnvIf Referer "^http://domain\.com/(.*/)?$" ref_ok を加え、/ で終えるページからの参照も可能にすると良いかと思います (.*/)? 部分は存在してもしなくてもOKということです 上記の場合は http://domain.com/ からのアクセスか、 http://domain.com/~/ からのアクセスということを示しています // ちなみにこれはドメイン直下ではなく下層ディレクトリに .htaccessを配置して参照制限をかけようとしているのですよね? もしドメイン直下なら全てが見れなくなると思うので。 ※注意※  このサイトの特性上、コピペで使用すると  URL記述の前後に不可視の文字列が入る可能性があります  必ず本文をコピーではなく手打ちでお試し下さい  .htaccessの最終行の改行もお忘れなく  

cocolink
質問者

お礼

詳しく解説してくださり有難うございます。大変助かりました。

関連するQ&A

  • 参照制限で二つのドメインからのみOKとする方法

    おはようございます。 参照制限で分からないことがあり伺いたいとおもって書き込みをしています。 現在.htaccessで参照制限をしています。 SetEnvIf Referer "^http://www/*****.com" my_site order deny,allow deny from all allow from env=my_site としていたのですが、"www"がついているドメインとついていないドメイン二つからのみ参照をOKにしたいのですが、どのようにしたらいいか分からず困っています。 どなたかアドバイスいただけないでしょうか? よろしくお願い申し上げます。

    • ベストアンサー
    • HTML
  • .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 deny,allow deny from all allow from .jp SetEnvIf Referer "拒否ドメイン" deny_ref order allow,deny allow from all deny from env=deny_ref このような書き方は間違えているのでしょうか。 こちらのやりたい事としましては、海外からのアクセスを拒否、日本でも一部のドメインの拒否、一部のサイトからの直リンク拒否です。 どうそ、よろしくお願いします。

  • .htaccessの記述

    さくらのレンタルサーバを使っています。 SetEnvIf User-Agent "Googlebot" shutout1 SetEnvIf User-Agent "Slurp" shutout2 SetEnvIf User-Agent "msnbot" shutout3 SetEnvIf Referer "google\.co\.jp" shutout4 SetEnvIf Referer "yahoo\.co\.jp" shutout5 SetEnvIf Referer "google\.com" shutout6 order allow,deny allow from all deny from env=shutout1 deny from env=shutout2 deny from env=shutout3 deny from env=shutout4 deny from env=shutout5 deny from env=shutout6 (改行) 新しくつくったページですので検索ロボットにはまだ拾われていないのでGmailで実験しましたが、http://mail.google.com/mail/~ からアクセスできてしまいます。アスキーモードで転送し、ファイル名もOKです。何がダメなのでしょうか… あと、「SetEnvIf Referer "google" shutout*」と記述すれば「google」を含むアドレスからのリンクはまとめてすべて拒否できますか? よろしければチェックをお願いします。

    • ベストアンサー
    • 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で複数設定するには?

    .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??

    .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を設置しました。 SetEnvIf Referer "^http://www\.○○○\.com" ref_ok SetEnvIf Referer "^http://○○○\.com" ref_ok order deny,allow deny from all allow from env=ref_ok PCアクセスはこれで大丈夫です。しかし、携帯ではドコモで自サイト内のリンクからもアクセスができません。一方でソフトバンクでは大丈夫でした。それ以外の携帯キャリアからは確認が取れていません。 もし、.htaccessで全ての携帯キャリアにも対応できる記述方法か別の手段で良い方法があれば教えてください。 以上、よろしくお願いします。

    • ベストアンサー
    • HTML
  • FC2無料ホームページでは、「SetEnvIf 」は使えない?

    FC2無料ホームページサービスを利用しています。 .htaccessが使用できるので、「SetEnvIf」を使用しようと思いましたが、うまくいきません。 文法が間違っているのでしょうか? それとも、「SetEnvIf」が使えないのでしょうか? SetEnvIf REFERER "○○○.web.fc2.com" ref01 Order Deny,Allow Deny from all Allow from env=ref01

  • .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の知識で、あまりよく分かっていません。詳しく教えていただければありがたいです。よろしくお願いします。

専門家に質問してみよう