mod_rewriteでスタイルを変更する

f:id:tenman:20090707091409j:image:w400


mod_rewriteは、mod_aliasに似ていて、リダイレクトに多用される。

最近のブログには、スタティックhtmlに見せかけるために、ほんとによく使われている。

アクセスしてきたURLが存在しない場合に、そのURLを一定のパターンで評価して、
当てはまれば、URLの?以降にあるクエリ文字列に当てはめて、該当するページを表示する

というのが、一般的な使われ方のようですが、それだけではなく、リバースプロキシの機能([P]+mod_proxy)や、アクセス禁止などもできるらしい。

少し変わった用途で、使えないか試してみたので、メモを残します。


下の例は、htmlを書くときには、外部スタイルを指定する事が多いと思いますが、
linkエレメントで、指定するスタイルシートを、リバースプロキシのように、
条件によって、ほかのファイルを読み込ませるというものです。


<IfModule mod_rewrite.c>

	RewriteEngine On
	rewriteBase /rewrite/
	

	
	#	
	#	index.cssへのアクセスがfirefoxからであるとき
	#	test.cssへのリダイレクトを実行する
	#
		
	RewriteCond %{HTTP_USER_AGENT} ^.+Firefox [NC]
	RewriteRule index.css test.css [L,QSA]



</ifModule>

test.cssは、外部URLでも使えますから、リバースプロキシのように動作します。