.htaccessでのアクセス制限

このQ&Aのポイント
  • HPを管理しているのですが、.htaccessで、直リンクを防止し、必ずトップページからアクセスしてもらいたいと考えています。
  • 環境変数からリファラを取得して、allow from env でアクセス制限を掛ける手法は理解したのですが。
  • リファラの一部分を取得して、アクセスの可否を判定させる方法や、下階層もひっくるめて同一サーバー内をひとくくりに指定する方法についてアドバイスをいただきたいです。
回答を見る
  • ベストアンサー

.htaccessでのアクセス制限

HPを管理しているのですが、 .htaccessで、直リンクを防止し、必ずトップページから アクセスしてもらいたいと考えています。 環境変数からリファラを取得して、allow from env でアクセス制限を掛ける手法は理解したのですが。 *****ここから質問です。****** その(1) リファラの一部分を取得して、アクセスの可否を判定させる方法はないでしょうか? 例) http://www.aaaaa/bbbbb/cc.net の、[cc.net]や、[aaaaa] の部分だけを判定素材として使う。 その(2) 下階層もひっくるめて、同一サーバー内を、 ひとくくりに指定したい場合、どう記述すればいいでしょうか? (1)、(2)どちらか一方のアドバイスだけでも構いませんので、 宜しく御願いします。

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

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

(1) あります。 適切な正規表現に書き直してから使ってくださいね。 SetEnvIf Referer "aaaaa.+cc\.net" ok order deny,allow deny from all allow from env=ok (2) トップページと同じフォルダに置けばサーバ全体に適用されます。

type_e
質問者

お礼

この指定の仕方は便利ですねー。 早速利用させて頂きました。 ありがとうございます。

その他の回答 (1)

回答No.2

トップページを除外しないとすべてのページにアクセスできなくなりますね。 <FilesMatch "^/(index\.html)?$"> と </FilesMatch> で囲んだらよさそう。

type_e
質問者

お礼

ブロック指定?ですかね。 ちょっと調べてみないと分からないと思いますが、 参考にさせて頂きます。 ありがとうございます。

関連する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 このような書き方は間違えているのでしょうか。 こちらのやりたい事としましては、海外からのアクセスを拒否、日本でも一部のドメインの拒否、一部のサイトからの直リンク拒否です。 どうそ、よろしくお願いします。

  • アクセス制限¥

    アクセスされたくないぺージ がありリファラで制限をかけようと思ったのですが、SSLからSSLなので取れませんでした。 htaccessも、下の階層まで効果が及んでしまうためしたくないです。 何か良い方法はありますか?

    • ベストアンサー
    • PHP
  • .htaccess での制限について

    ある外部システムから、サイト(sample.com)内のディレクトリ「/data/user/」(indexと同階層)にcsvファイルとgifファイルを同時に出力をしています。 data.csv data.gif csvファイルにはデータが入っており、外部からのアクセスを制限するためにディレクトリ 「/data/」 に.htaccessを作成し、制限をかけています。 記載は Order deny,allow だけです。 この記載により、URL直打ちによるアクセス制限はかけられていて、csvファイルもgifファイルも見ることができません。ここまでは意図していることろです。 まず、csvファイルのほうはphpによりデータを取得、DBへ保存してデータとして利用しています。 この部分は特に問題なくできています。 gifファイルのほうはそのままの形でページ内で表示をしたいのですが、一つ下の階層のimage.php内にて <img src = "../data/data.gif"> と記載をしても画像が表示されません。 .htaccessの記載を Order deny,allow deny from all allow from sample.com としてみましたが、うまくいきません。 どなたかアドバイスをいただけませんでしょうか?

    • ベストアンサー
    • HTML
  • .htaccessによるアクセス制限について

    .htaccessによるアクセス制限をかけていますが、問題がおきました。 以下のように、自サイトからのリンクのみ表示し、 他サイトからのリンクは表示させないようにしています。 SetEnvIf Referer "^http://www\.***\.com" ref_ok order deny,allow deny from all allow from env=ref_ok 自サイト内からリンクした場合、 <A HREF="a.html">a.html</A> だときちんと表示されるのですが、 <SCRIPT language="JavaScript"> function wopen1(){window.open("a.html")} </SCRIPT> <A HREF="javascript:wopen1();">a.html</A> こちらだと表示されません。 a.htmlは同一のファイルを差し、リンク元のページなどの条件も一切変わりません。 記述が間違ってるのかもと思って調べてはみたのですが、対策方法がわからずに困ってます。 javascriptのリンクからでも.htaccessが有効になる方法ってあるんでしょうか?

  • .htaccessでアクセス制限動作しません

    .htaccessを設置しましたが、正常に動作しません。 ニフティ法人Webホスティングにて、独自ドメイン使用のホームページを開設 しています。(.htaccess利用可、ファイルのパーミッション(属性)を「604」に するということをニフティに確認済み) サイト全体に対して、123.net123456780.t-com.ne.jp からのアクセス制限をしたく、. htaccessを設置しました。.t-com.ne.jp より前の部分、またIPアドレスも一定では ない為、t-com.ne.jp 特定ホストからのアクセス制限をしました。 ---------.htaccess記述-------- order allow,deny allow from all deny from .t-com.ne.jp ----------------------------- ・ 各行、最終行は改行 ・ FTPファイル転送後、ファイル名を「.htaccess」に、属性を「604」に変更 上記では、アクセスされてしまい、「.t-com.ne.jp」の「.(ドット)」を削除し、  「t-com.ne.jp」に書き換え、前手順で設置をしましたが、.htaccessが 動作せず、依然として t-com.ne.jp からアクセスされています。 サイト全体のアクセス制限をしたいので、図の様にサイトトップページ、 および各ページフォルダと同じ場所に、.htaccessを設置しました。 .htaccessの記述方法、設置場所が間違っているのでしょうか? どのようにすれば、アクセスを制限するようになるでしょうか? ご存知の方いらっしゃいましたら宜しくお願いいたします!

  • .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でアクセス制限できないホスト

    アクセスして欲しくないホストは、htaccessを使って拒否しているのですが、 『sol-fttb.240.152.118.46.sovam.net.ua』だけは なぜか、どんなに記述しても、毎日アクセスがあります。 今までに、以下のようにして試したのですが、すべて駄目でした。 deny from sol-fttb.240.152.118.46.sovam.net.ua deny from .240.152.118.46.sovam.net.ua deny from .sovam.net.ua deny from .net.ua deny from .ua deny from 240.152.118.46 もちろん、その記述の前に、 order allow,deny allow from all は、記述しており、 他のホストは、問題なく拒否できています。 『sol-fttb.240.152.118.46.sovam.net.ua』のように、IPアドレスが不明なホストは拒否する方法はないのでしょうか? できれば、htaccess以外でのアクセス制限の方法ではなく、 htaccess内の記述で、アクセス拒否したいと思います。 以上よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • .htaccess でのアクセス制限

    http://www.renewda.com/detail_282.html にある方法で、下記のような .htaccess を使ったアクセス制限を試みました。 (ドメインは架空です) SetEnvIf Referer "^http://www\.abc\.com" ref_chk order deny,allow deny from all allow from env=ref_chk アクセス制限の対象となるフォルダには、js ファイル (xxx.js とします) があります。 この xxx.js に、次の各ページを開いた状態で、 URL をブラウザに直接入力してアクセスを試みました。 A. 他ドメインのページ B. www.abc.com 内の、script タグで xxx.js を読み込んでいるページ C. www.abc.com 内の、xxx.js を読み込まないページ 結果は、A と C でアクセスが拒否されましたが、 B ではアクセスできてしまいました。 B の場合でも (script タグでの読み込み以外の) アクセスを拒否するようにする方法はあるでしょうか。

  • .htaccessでのIP・ホストの制限について

    Mac os9.2、IE5.1.7、Dreamweaver MXでの作業です。 サイトトップにオンラインブックマークからのアクセス制限をかけたいのですが、どうやっても上手く出来ず、こちらに質問させて頂きました。 作業は「.htaccess.txtをIndex.htmlと同じ階層に作成」→「.htaccess.txtをDreamweaver MXでASKIi転送」→「ロリポのFTPからファイル名とパーミッションを604に変更」という感じです。 .htaccessの記述はロリポから参考URLになっていたサイトを参考にして作ったのが以下 AddHandler cgi-script htaccess order allow,deny allow from all deny from ht.tp://bookmarks.yahoo.co.jp/my コレは全く効きませんでした。次にこちらで参考URLになっていた.htaccess自動作成サイトで作ったのが以下 <Files ~ "^.(htaccess|htpasswd)$"> deny from all </Files> Options -Indexes setenvif referer "ht.tp://bookmarks.yahoo.co.jp/my" bad_referer1 order allow,deny allow from all deny from env=bad_referer1 こちらは500エラーになります。今、仕方なく、TOP以降へ入室する際にパス認証をかけてます(これはロリポでのサービス内なので、ちゃんと効いてます)。階層が違うので.htaccessが2つあるのがダメなのでしょうか? パス認証は出来れば使用したくないので、特定のURL、IP、ホストからの制限にしたいのです。どうぞご指導お願い致します。(当方.htaccessは全くの初心者です)

  • .htaccess Refererによるアクセス制限で更新したときについて

    .htaccess Refererによるアクセス制限を以下のようにして行い特定のサイトからのアクセスを拒否するようにました。 SetEnvIf Referer "^http://www\.abc\.jp" ref_ng order allow,deny allow from all deny from env=ref_ng 普通にhttp://www\.abc\.jpからアクセスしたときはちゃんと拒否してくれるのですがページを更新したときIE7だと表示されてしまいます。 Firefoxは更新してもエラーを返してくれるのですが…。 IEでもFirefoxと同じように更新してもエラーを返すようにできませんでしょうか? ちなみに403を404として返すようにもしています ErrorDocument 403 /hoge.php http://questionbox.jp.msn.com/qa2628919.html?StatusCheck=ONを参考にしました。