人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

htaccessで、サイト外から特定フォルダの画像ファイルにリンクされていた場合、それぞれの画像ごとのページへ転送する方法がわからず困っています。

具体的に書くと次のような画像アドレスがあり
http://www.example.com/abc/a.jpg
次のページでは上の画像のみが表示されるHTMLになっています。
http://www.example.com/abc/a.html

サイト外からa.jpgに直リンクされた場合、a.htmlに自動で転送されるようにしたいです。
※a.jpg以外にもb,c...とあり、画像ごとのhtmlに転送します。

htaccessの具体的な記述方法をお教えください。

●質問者: liser
●カテゴリ:ウェブ制作
✍キーワード:.jpg HTML アドレス サイト ファイル
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kiryuu
●60ポイント ベストアンサー

Apache2で試してみました。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !www\.example\.com [NC]
RewriteRule (.*)(\.jpg)$ http://www.example.com/abc/$1\.html [R=301]

mod_rewriteが使えることが条件です。

RewriteCond %{HTTP_REFERER} !www\.example\.com [NC]

HTTP_REFEREにwww.example.comが含まれていなければ、次の行を実行します。

[NC]は大文字小文字を区別しません。

RewriteRule (.*)(\.jpg)$ http://www.example.com/abc/$1.html

.jpgより前のパスが$1に入ります。

http://www.example.com/abc/に$1と.htmlを足して転送先を生成します。

注意点として、

HTTP_REFERERは、あてにならないことがあります。

Norton Internet Security 2004ではHTTP_REFERERをブロックしていたようです(現行バージョンはわかりません)。

◎質問者からの返答

できました。わかりやすい回答ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ