mod_
さて、
rewrite_ruleの適用条件を指定する
1つのURL書き換えを行うときはあまり気になりませんが、
それではhttpd.
<VirtualHost *:80>
DocumentRoot /usr/local/apache2/htdocs
ServerName www.example.com
ErrorLog /usr/local/apache2/error_log
CustomLog /usr/local/apache2/access_log combined
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
RewriteEngine on
RewriteLogLevel 9
RewriteLog /tmp/rewrite.log
RewriteCond %{HTTP_USER_AGENT} Firefox
RewriteRule ^/$ /firefox.html [L]
RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteRule ^/$ /ie.html [L]
</VirtualHost>
さて、
$ echo "I am firefox" | sudo tee /usr/local/apache2/htdocs/firefox.html
$ echo "I am Internet Explorer" | sudo tee /usr/local/apache2/htdocs/ie.html
ファイルが設置できたら、
さて、
まずはRewriteCondという部分に注目してください。RewriteCondはif文のようなもので、
RewriteCond 判定の対象 判定パターン [オプション]
上記の例を当てはめますと、
その他にもApacheで使うことのできる環境変数は、
なお、
rewrite_mapでURLのマッピングを行う
URLの書き換えを行う際、
いままでのテクニックで実装するなら、
そこでrewrite_

それでは設定ファイルを見ていきましょう。なお、
<VirtualHost *:80>
DocumentRoot /usr/local/apache2/htdocs
ServerName www.example.com
ErrorLog /usr/local/apache2/error_log
CustomLog /usr/local/apache2/access_log combined
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
RewriteEngine on
RewriteLogLevel 9
RewriteLog /tmp/rewrite.log
RewriteMap mapping txt:/usr/local/apache2/conf/mapping.txt
RewriteRule ^/(.*)$ /cgi-bin/index.pl?id=${mapping:$1} [PT]
</VirtualHost>
さらにマッピング情報を管理するためのファイルが必要になりますので、
$ sudo tee /usr/local/apache2/conf/mapping.txt << EOF
SiteA 1
SiteB 2
SiteC 3
EOF
それでは、
http://{$servername}/SiteA でアクセスし、
RewriteMapディレクティブの記述方法
RewriteMap、
RewriteMap マッピング名 マッピングファイル(テキスト、DBM形式が選択可能)
RewriteMapディレクティブでマッピング名を指定したら、
サンプルで用意した設定ファイルのように、
なお、
最後に
さて、