Apacheの最近のブログ記事

mod_rounded_cornersという角丸を生成するための
Apacheモジュール(Apache2系用)を作りました。

というか会社のなんかのミーティングで誰かが
言ってたので勉強がてら作ってみた。

http://github.com/yoshiki/mod_rounded_corners/tree/master

インストールは下記のようにすればOK。

% autoconf
% ./configure
% make
# make install

設定はhttpd.confに

<VirtualHost *:80>
ServerName rounded-corners.example.com

<Loction />
SetHandler rounded-corners
</Location>
</VirtualHost>

て感じで書けばOK。
今のところはLocationが「/」以外だとうまく動かないよ。

で、Apacheを再起動したら

http://rounded-corners.example.com/ffffff/000000/20.gif

にアクセスすると、bgが黒(000000)でfgが白(ffffff)の
半径20pxのGIF画像が生成されるはず。

これをCSS Spriteでごにょれば角丸なテーブルとかに
使えるような使えないような。

あまり処理速度とか考えずに作ったんですが、
前段にプロキシとかかませてキャッシュしてやれば
ちょっとサイトでも使えなくもない。

Apacheモジュールの練習で作った簡単な物なので
煮くなり焼くなり、ご自由にどうぞ。

TODO:
・bgを透明化できるようにする
・「/」じゃなくても使えるようにする
・blah blah blah

弾さんがやってたのを見てmod_rewriteでもできるべと思い、試しにやってみた。
RewriteCond %{HTTP_REFERER} !^http://clouder\.jp/~yoshiki/nohotlinks/
RewriteRule ^/~yoshiki/nohotlinks/.*\.(gif|png|jpe?g|mov|wmv|avi|flv)$ - [F]
これでできた。

やっていることは、RewriteCondディレクティブでリファラーをチェックして、http://clouder.jp/~yoshiki/nohotlinks/でなかった場合には、RewriteRuleディレクティブで/~yoshiki/nohotlinks/以下の画像やメディアを403 Forbiddenに飛ばすだけです。

以下は実際の動作の様子です。
http://clouder.jp/~yoshiki/nohotlinks/から参照できる画像も、このページや直接アクセスすると見られなくなっています。

ホットリンクできる例

・ホットリンクできない例
↓は表示されない。


ちなみに自分もそのサイトが「ホットリンクしないで複製してね」という以外はホットリンクするというのが正しいやり方じゃないかと思います。


Apacheハンドブック
Apacheハンドブック
posted with amazlet on 07.04.08
Ben Laurie Peter Laurie 大川 佳織 田辺 茂也
オライリージャパン (2003/09)
売り上げランキング: 35539
おすすめ度の平均: 5.0
5 Apache使い必須

検索

広告

月別 アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.12