• ベストアンサー

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

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

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

  • ベストアンサー
noname#15647
noname#15647
回答No.2

No.1で回答した者です。 すみません"!"を見落としていました。 HTTP_REFEREが空でない場合ですね。

msndance
質問者

お礼

う~ん、わかりました。めんどくさいですね。なかなかなれないものです。ありがとうございました。

その他の回答 (1)

noname#15647
noname#15647
回答No.1

.htaccessについて知識はないのですが、正規表現の問題のようなので解答します。 ^$ これは、行頭と行末の間に何も入っていない。エディタで言えば空行を表します。 この場合はHTTP_REFEREがからの場合、つまり、URLを直接入力してアクセスしてきた場合を示すと思います。 自信のない回答ですが、参考になれば幸いです。

関連するQ&A

  • 条件で振り分ける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に転送する」 と言うような条件を追加したいと思っていますが、記述が分からず苦しい状態です。 急いでおり改めて勉強している時間がありません。 どなたかご教示いただけるととても助かります。。

  • mod_rewriteで直リン防止

    直リン防止のためmod_rewriteを.htaccessで設定してみました。 RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://xxxx\.com/.*$ [NC] RewriteRule ^(.*)$ - [F] この設定で画像は直リン防止できましたが動画は直リン防止が できず、リンクからも読み込めなくなりました。 どうにか動画直リンを防ぐ設定はないでしょうか?

  • CodeIgniterのURLの簡素化

    CodeIgniterでの開発を考えているのですが、URLを簡単にするための.htaccessが有効にならずに困っています。 RewriteEngine on RewriteCond $1 !^(index\.php|css|user_guide|.+\.gif$|.+\.jpg$|.+\.png$|.+\.js$) RewriteRule ^(.*)$ /CodeIgniter/index.php/$1 [L] をどこにおけばいいのか分かりません。どの階層でしょうか?

    • ベストアンサー
    • PHP
  • .htaccessで画像の転送を差し替える方法

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

    • ベストアンサー
    • PHP
  • 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に以下の2つの処理を書きたいのですが、 単純に空行をあけて続けて書いてよいのでしょうか。 これと、  RewriteEngine on  RewriteCond %{HTTP_HOST} ^www\.example\.com  RewriteRule (.*) http://example.com/$1 [R=301,L] これ  Redirect permanent /example/ http://example.com/ この2つを単純に、  RewriteEngine on  RewriteCond %{HTTP_HOST} ^www\.example\.com  RewriteRule (.*) http://example.com/$1 [R=301,L]  Redirect permanent /example/ http://example.com/ のように書いて大丈夫なのかということです。 初歩的な質問ですが、宜しくおねがい致します。

    • ベストアンサー
    • HTML
  • .htaccessで携帯サイトとPCサイトの振り分けについて

    .htaccessで携帯サイトとPCサイトの振り分けについて お世話になります。 .htaccessで携帯サイトとPCサイトの振り分けで困っています。 現在、index.phpで携帯サイトとPCサイトの振り分けしています。この場合、PCサイトのトップページがindex.htmlではなく他の名前にしなくてはならないようで、現在はpc.htmlにしています。 どうにかpc.htmlではなく、index.htmlのまま携帯サイトとPCサイトの振り分けをしたいのです。 .htaccessであればできそうなので、いろいろと調べながら試したのですがうまくいきませんでした。 使用しているサーバーはさくらのレンタルサーバーで、ライトプランです。 mod_rewriteは入ってると記載してありました。.htaccessもOKなようです。 以下のように.htaccessファイルに記述して試しました。 例1) 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] RewriteRule ^$ abc.com/m/ [R] 例2) Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ http://www.abc.com/m/index.html [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ http://www.abc.com/m/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ http://www.abc.com/m/index.html [R] 素人ですので、できましたら記述全文教えていただけるとありがたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • 昔に書いた.htaccessの内容がわからない

    5年ほど前から放置していた自作サイトがあるんですが、久しぶりにいじろうと思って.htaccessを開いてみたところ、何のための記述か自分で書いておきながら理解できないという恥ずかしい事態に陥りました。 もともと正式な.htaccessの書き方は知らないので、どこかからコピーしてきてドメインのところだけ書き換えて使ってたんだと思います。 RewriteEngine on RewriteCond %{HTTP_HOST} !^hogehoge.com$ [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^(.*) - [F] これって何をするためのものか、お分かりにかる方、教えていただけないでしょうか? RewriteCondなどでググってみたんですけど、いまいちこれだというものが見つかりませんでした。 悩んだ覚えがあるものとすると、サイトを表示したときにURLにindexファイル名を非表示にしたいとか、wwwを付けないURLにしたいとかぐらいなんですが、これらで検索してもこれとは違って記述が出てきたのでどうも違うようです。

  • 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]

  • httpd.conf RewriteCond

    Apacheでhttp://www.example.co.jp/index.htmlからたどったアクセスのみを許可する設定 RewriteCond %{HTTP_REFERER} !^ http://www\.example\.co.jp/index\.html.*$ [NC] RewriteRule ^.*$ - [F] とあるんですが、co.jpの.の前には\がついてないのが不思議なんですが、これはミスプリなんでしょうか。 また、htmlの後の.*$、RewriteRule の^.*$ - [F]はどういう意味なんでしょうか。