.htaccessで画像の転送を差し替える方法

このQ&Aのポイント
  • 画像の転送を差し替える方法とは?
  • 直リンク対策としての.htaccessの使い方
  • 自身のドメイン以外からのアクセスを差し替える方法
回答を見る
  • ベストアンサー

.htaccessで画像の転送を差し替える方法

記事内容をまるまるコピーするブログへの対策をしたいと考えています。 いくつかの方法の中で画像への直リンク対策としてこのようなものが紹介されてました。 RewriteEngine on RewriteCond %{HTTP_REFERER} ^http://spamsite.com/.*$ RewriteRule ^(.*).(jpeg|jpg|gif|png)$ forspam.gif 特定のドメインからアクセスが来たら特定の画像に差し替えるというものです。 これを「特定のドメイン以外からのアクセスが来たら」にしたいのですが、どのようにしたらよいでしょうか。 つまり自分が独自のドメインを使っているなら、わざわざスパムサイトのドメインを指定せず、自分のドメイン以外からのアクセス(リファラー)を差し替えれば楽なのではないかという考えです。 この考え方だと問題があるのでは、という意見も含めてお待ちしております。

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

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5081/13278)
回答No.1

RewriteCond %{HTTP_REFERER} !^http://spamsite.com/.*$ で行けると思います。 ブラウザの設定等でリファラーを付けてこなかったら別画像に差し替わってしまいますが、それは許容すると言う事でいいんですよね?

ankodaisuki
質問者

お礼

>ブラウザの設定等でリファラーを付けてこなかったら別画像に差し替わってしまいますが なるほどそういう問題が発生する可能性もあるんですね。 すごく参考になりました。 ありがとうございました!

関連するQ&A

  • 画像を直リンクできないようにする

    .htaccessに次の記述を追加 RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC} RewriteRule \.(gif\jpg)|png$ - [F] すみません、ここで簡単な質問なのかもしれないのですが、2行目の!^$というのは、どういう意味になるのでしょうか?^が行頭で、$が行末なんですよね・・・。

  • htaccessの書き方

    RewriteEngine On RewriteCond %{HTTP_HOST} ^dog.abcd.com$ RewriteCond %{REQUEST_URI} !^/dog/ RewriteRule (.*) /dog/$1 RewriteCond %{HTTP_HOST} ^cat.abcd.com$ RewriteCond %{REQUEST_URI} !^/cat/ RewriteRule (.*) /cat/$1 サブドメインを追加するには上記の記述をhtaccessに記入すればよいとサーバー会社の説明にありましたので、その通りにしました。 ところが、htaccessに設定していないサブドメインにアクセスすると、通常のドメインの内容が表示されてしまいます。 登録ドメインがabcd.comだとして、設定していないサブドメインがtest.abcd.comだとすると、test.abcd.comにアクセスするとabcd.comの内容がそのまま表示されてしまいます。 存在しないサブドメインにアクセスすると全てメインドメインの内容が表示されてしまうのは、検索エンジン対策としても思わしくないように思えます。 出来れば、存在しないサブドメインへのアクセスは404エラーになるようにしたいのですが、方法がわかりません。 htaccessで使われる言語の知識がなくチンプンカンプンなので 適当に以下のような感じでいろいろ試行錯誤していますが、なかなか思うようにいきません。 RewriteEngine On RewriteCond %{HTTP_HOST} ^dog.abcd.com$ RewriteCond %{REQUEST_URI} !^/dog/ RewriteRule (.*) /dog/$1 RewriteCond %{HTTP_HOST} ^abcd.com$ RewriteCond %{REQUEST_URI} !^/ RewriteRule (.*) /$1 RewriteCond %{HTTP_HOST} (ここでabcd.comまたはdog.abcd.com以外のリクエストは)$ RewriteCond %{REQUEST_URI} !^/404/ RewriteRule (.*) /404/$1 を表示させる、としたいのですが、このような命令文はありますでしょうか? どなたかアドバイスいただければ大変助かります。

    • ベストアンサー
    • HTML
  • htaccess wwwがあるのとないので同じページを表示させることはできますか?

    現在●●.comと■■.comの2つのアドレスを使用していて、 ■■.comをマルチドメインにするため下記をhtaccessに記載しています。 www. ■■.comを追加子ドメインにして ■■.comと同じページを見られるようにするにはどうすればよいでしょうか? # Enable RewriteEngine. RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} (■■.com) RewriteCond %{REQUEST_URI} !^/(■■.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L]

    • ベストアンサー
    • HTML
  • .htaccessを使ったリダイレクト

    FC2のレンタルスペースでサイト運営をしている者です。 特定のサイトからのアクセスを、指定したページへリダイレクトすることになりました。 そこで急ぎのため、よく知らない.htaccessを見よう見まねで書いたのですが、うまく動作しません。 特定のサイト.comから、http://私のサイト.web.fc2.com/へリンクを貼られています。 ↓このように書きました。間違っているところを直していただけませんか? RewriteEngine on RewriteCond %{HTTP_REFERER} ^特定のサイト.com$ RewriteRule ^$ http://私のサイト.web.fc2.com/指定したページ.html

  • htaccess 同一URL携帯転送とwww有無統一の両立

    RewriteEngine onを使った、 htaccessの書き方について質問させてください。 1.SEOのため、URLは「www」ありに統一させたい。 2.www.○○○.jpとURL直接入力した際、PCにはPC向けのページを、   携帯には携帯向けのページを表示させたい。 この二つの条件を両立するため、下記のとおりhtaccessを書いてみたのですが、携帯からアクセスしても、PCのTOPが無理やり表示されてしまうという結果に終わりました。 どうすればよいのか、ご存知の方お教えください。 --------------------------------------------------------------- RewriteEngine on RewriteCond %{HTTP_HOST} ^ドメイン\.jp RewriteRule (.*) http://www.ドメイン.jp/$1 [R=301,L] RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Up.Browser [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^ASTEL [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^DDIPOCKET [NC] RewriteCond %{HTTP_USER_AGENT} ^WILLCOM [NC] RewriteRule ^$ 携帯用URL [R]

  • htaccess リダイレクトの記述方法

    「wwwなし http://www.abc.net/」から 「wwwありに統一 sslありのhttps://www.abc.net/」にリダイレクトしたいのですが、以下の記述で合っていますでしょうか。よろしくお願いします。 Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^abc.net RewriteRule ^(.*)$ http://www.abc.net/$1 [R=301,L] RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    • ベストアンサー
    • HTML
  • 条件で振り分けるhtaccess

    困っています。 今、スマートフォン用のサイトを作成しています。htaccessで、 # Enable RewriteEngine. RewriteEngine On RewriteCond %{REQUEST_URI} !^/sp/.*$ RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android|BlackBerry|Windows.Phone) [NC] RewriteCond %{HTTP_COOKIE} !viewmode=pc RewriteRule ^(.*)$ /sp/$1 [R=301,L] という条件で振り分けているのですが、 これに、 「拡張子にgifやjpgがついていた場合は、spには転送しない」とか 「拡張子にgifやjpgがついてなかった場合は、spに転送する」 と言うような条件を追加したいと思っていますが、記述が分からず苦しい状態です。 急いでおり改めて勉強している時間がありません。 どなたかご教示いただけるととても助かります。。

  • htaccess ユーザーエージェント 振り分け 

    htaccess でユーザーエージェント 振り分けを行いました。http://www.example.com/ 以下に htaccessを入れましたが、PCのSEO対策上問題があるでしょうか? RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ http://www.example.com/i/index.html [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} Vodafone RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} SoftBank RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ http://www.example.com/e/index.html [R]

    • ベストアンサー
    • HTML
  • .htaccess の書き方

    以下の .htaccess では、http://hoge.jp への携帯からのアクセスを http://hoge.jp/mobile ディレクトリへ転送させていますが、これを、 http://m.hoge.jp へ転送するには、どう記述を変えれば良いのでしょうか? ちなみに、使用予定のレンタルサーバでは、サブドメインつきのリクエストで 所定のディレクトリへアクセスさせるには、自分で .htaccess を書く必要が あるとのことです。(設定画面で設定できません) PC・携帯からのhttp://hoge.jp へのアクセスを、それぞれ PC: http://www.hoge.jp (/www/) 携帯: http://m.hoge.jp (/m/) という具合に振分転送させたいのですが・・・。 -------------------------------------- #携帯振り分け Options +FollowSymLinks RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} !^/mobile RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} (J-PHONE|Vodafone|Softbank|MOT-) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (KDDI|UP\.Browser) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (PDXGW|DDIPOKET|WILLCOM) [NC,OR] RewriteCond %{HTTP_USER_AGENT} ASTEL [NC,OR] RewriteCond %{HTTP_USER_AGENT} L-mode [NC] RewriteRule ^(.*)$ /mobile/$1 [R,L] #「www」ありに統一 RewriteCond %{HTTP_HOST} ^(hoge\.jp)(:80)? [NC] RewriteRule ^(.*)$ http://www.hoge.jp/$1 [R=301,L]

  • htaccessについて

    HPサイトを携帯・スマートフォンとPCで振り分けたいのですが、 htaccessがうまく機能してくれません。。 携帯でページを開いてもPC用のページが開きます。 RewriteEngine On
 RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html [R] #au 

RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html [R] #DoCoMo 

RewriteCond %{HTTP_USER_AGENT} SoftBank [NC]
RewriteRule ^$ http://あどれす /mobil/index.html[R] #SoftBank RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #iPhone RewriteCond %{HTTP_USER_AGENT} iPod [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #iPod RewriteCond %{HTTP_USER_AGENT} Android [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #Android 以上を記入したのですが、どうして出来ないのかわかりますでしょうか。 .htaccessはPCのindexと同じ階層です。 PCの階層にmobilのファイルがおいてあります。 よろしくお願いします

専門家に質問してみよう