kotaoueはそんなかんじ

kotaoueの最新情報。

Apache RewriteRuleで小文字を大文字にする

クエリの文字列とかで、DBから内容抜き出すので、
小文字になってるとエラーになるわぁってのよくあるやん。

http://example.com/TEST/ はOKだけども
http://example.com/test/ はNGみたいな・・・

っていうか、よくあるという前提で話を進めます。

システム側で変更しても、URLが分散しちゃうしなぁって思ってたらApacheでできた。

RewriteMap toupper int:toupper
RewriteRule ^/(.*)/$ http://example.com/?id=${toupper:$1} [L]

ということで、RewriteMap使えばOK。

もちろん、小文字にすることも可能。

詳しくは、↓を
Apache module mod_rewrite

あと、注意点としては、

  1. RewriteMapは .htaccessじゃエラーになる。
  2. directoryコンテキストにかいてもエラーになる。

それから、RewriteMapはRewriteCondと違って、一行ずつ書く必要ないので、

RewriteMap toupper int:toupper
RewriteRule ^/hoge/(.*)/$ http://example.com/?hoge=${toupper:$1} [L]
RewriteRule ^/piyo/(.*)/$ http://example.com/?piyo=${toupper:$1} [L]

見たいに書けて、その点ありがたいですぅ

              ¨  ¨  ¨  ¨
              ______   ¨
         :  / __玉__ ヽ
        : / _= 、:::::::::::::::::::::二`、:
         /:. r¨    ヽ``````./   ヽ\ :
      : /:: /|   ・   |:::三::|  ・ || \
    :  /:::. /::ゞ、    /:::::二:::ヾ  .λ::: ヽ
       /::: /   ` ─´::::::::──::::`ー´ |::  | :
   :  /:::  ハ.       :::::::::::::::::::    l:  | : 
      |:::  〈:::::::....    | ̄| ̄| ̄| ̄|  /.  |:
     :ゞ... : : ゝ:::.   匚 匚 匚.匚.| /  /
     :\   ノ  ゞ、:::::::::..................../ゞ_/
        ゝ´      ̄ /へ ̄ ̄  :
          :    /:::::::::\ :
        : (⌒二 ̄::::::::::::::::::::::\ /⌒ヽ:
          :   ̄/ ヽ:::::::::::::::::::ゞ⊃  〉:
              〈  〉::::::::::::::丿ヽ_ノ:
             : ゝ/::::::::::::::ノ :
             :  /:::::::::/
                 〈::::::::〈
                ヽ\:ヽ
                 ゝ::\\ :
                ゝ'   レ

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。