apacheのRewriteMapで小文字のURIを大文字に変換してリダイレクトさせる
皆さま, こんにちわ
今日はapacheネタですね^^
とてもニッチなケースですが, 実際の業務でこのケースがあったので備忘のために記しておく. 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
以上.