リンククッションのメモ

2010/05/14 金曜日 20:53 投稿者 zon

連休中に、いろいろと CakePHP の Plugin 的なパーツを作っていて、なかには管理画面が必要なものもあったりして、さらに、その管理画面から外部リンクをはりたいものがあったりもすると、ちょっと悩む。

悩み事

管理画面から直接外部リンクをはると、管理画面のURLがリファラとして渡されてしまう。
管理画面のURLは、第三者にはあまり知られたくない。

自作でリンククッションを作るのが手っ取り早い。
リンククッションだからという理由でドメインごとアクセスブロックされるのも困る。

リファラは空にしておく必要がある。

作ったもの

以上の悩みを解決するために作ったのが、リファラをクリアする機能付きのリンククッション。
付属物としてリファラチェックページ。

My Utility-リンククッション
My Utility-リファラチェック

ひっかかったところ

get で URL をパラメータとして渡す場合。
URL エンコードは、mod_rewrite + Apache 1.3 の組み合わせで2回?

URLエンコード を用いたURLを mod_rewrite で制御しようとすると404エラーなどになる。
Apacheのログでもそれは確認できる。
どうやら Apache 1.3 であることも問題らしい。
URLエンコードがなぜか勝手にデコードされている様子。

この問題の解決は簡単である。
単純にURLエンコードを二回かければ解決できる。

URLエンコード with mod_rewrite in Apache 1.3 – Minase’s Blog – FYA

さらに、CakePHP がプラスされると?3回必要。
URL エンコードを3回かけると、渡されるパラメータは1回 URL エンコードした状態になっている。
パラメータとして渡されるまでに、URLデコードが2回行われているようだ。どの段階かは未調査。

参考

ドジっ子Watcher リンク禁止厨対策にリンククッション(リファラ消し付)
リファラ実験 – referrer test
Operaでリファラ消し :: てくてく糸巻き

作った後気づいたこと

はてブなんかのソーシャルブックマークの個別のページ(エントリページ?)はその記事に飛ぶリンクがあるからリンククッションとして使うことができたなーとか。
はてなブックマーク – zontheworld
livedoor クリップ – zontheworld

それだと、ソーシャルブックマーク先にはリファラが知られるから、簡単な個人用ブックマークサイトを作って、実はリンククッションとしても使うみたいなのもありかなーとか。

この記事のトラックバックURL

トラックバック一覧

この記事にはトラックバックがついていません。

コメント一覧

この記事にはコメントがついていません。

RSS feed for comments on this post.

コメント投稿

:b-ok: :b-ng: :b-heart: :b-heartbreak: :b-note: :b-idea: :b-!: :b-?: :b-sleep: :b-up: :b-down: :b-run: :b-tear: :b-sweat: :b-cat: :b-star: :b-glitter: :b-silent: :b-anger: :b-black: :b-neutral: :b-weep: :b-cry: :b-grin: :b-shock: :b-shy: :b-smile: :b-angry: :b-redangry: :b-depress: :b-glad: :b-relieve: :b-surprised: :b-tired: :b-fascinated: :b-oops: :b-amazed: :b-absent: :b-happy: :b-discouraged:

zontheworld
うまい焼肉が喰いたい。
HTML convert time: 0.452 sec. ( Login )