apacheのRewriteMapで小文字のURIを大文字に変換してリダイレクトさせる

皆さま, こんにちわ

今日はapacheネタですね^^

f:id:namio6243:20181012044417p:plain

とてもニッチなケースですが, 実際の業務でこのケースがあったので備忘のために記しておく. mod_rewriteに内蔵されているRewriteMapを使って実現する.

検証環境

httpd.confへ設定

この書き方だと (.*) に入る値(小文字)が右側のuppercase:$1 に大文字として引き継がれる.

RewriteMap  int:toupper
RewriteRule ^/aaa/bbb/ccc/(.*).html$   https://www.sample.co.jp/test/${uppercase:$1} [QSA,R=301,L]

逆もまだ然りで, 大文字→小文字の変換も可能

RewriteMap  int:tolower
RewriteRule ^/AAA/BBB/CCC/(.*).html$   https://www.sample.co.jp/test/${lowercase:$1} [QSA,R=301,L]

詳細は公式ドキュメント
mod_rewrite - Apache HTTP Server Version 2.4

以上.