/hoge/fuga/piyo/
というURLを
/index.html?var[0]=hoge&var[1]=fuga&var[2]=piyo
(パラメータ数は不定)
へmod_rewriteのみでリライトする方法はありますでしょうか。
無ければ諦めてアプリ側で対応しようと思っています。
RewriteEngine On RewriteRule ^/([a-z]+)/([a-z]+)/([a-z]+)/ /index.html?var[0]=$1&var[1]=$2&var[2]=$3 [QSA,L]
こんなとこ?
パラメータの数が無限に続く事は無いと思いますが9を超えますか?
9を超えないのであればb-wind 氏の回答を元にして、想定される分だけ拡張していけばよろしいのでは?
(長くなると見づらいので4つまでしか書いてません)
RewriteEngine On RewriteRule ^/([a-z]+)/([a-z]+)/([a-z]+)/([a-z]+)/ /index.html?var[0]=$1&var[1]=$2&var[2]=$3&var[3]=$4 [QSA,L] RewriteRule ^/([a-z]+)/([a-z]+)/([a-z]+)/ /index.html?var[0]=$1&var[1]=$2&var[2]=$3 [QSA,L] RewriteRule ^/([a-z]+)/([a-z]+)/ /index.html?var[0]=$1&var[1]=$2 [QSA,L] RewriteRule ^/([a-z]+)/ /index.html?var[0]=$1 [QSA,L]
確かに現実的には無限にパラメータが続くわけはないので、
(書いていて思い出しましたが、IEのURL最大長制限もありますし)
パラメータ数上限を決めて、その個数分リライトルールを設定するのが、現実的な解法のような気もします。
ただ、mod_rewriteの文法上そういったループ的な記述が可能なのかどうかは、興味があるので引き続き回答を募集したいと思います。
パラメータ数は不定です。
hoge、fuga、piyo、foo、barと続く可能性もあります。