人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mod_rewriteでのURLリライトに関する質問です。

/hoge/fuga/piyo/

というURLを

/index.html?var[0]=hoge&var[1]=fuga&var[2]=piyo
(パラメータ数は不定)

へmod_rewriteのみでリライトする方法はありますでしょうか。
無ければ諦めてアプリ側で対応しようと思っています。

●質問者: FnuLnu
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:hoge HTML INDEX mod_rewrite URL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント
RewriteEngine On
RewriteRule ^/([a-z]+)/([a-z]+)/([a-z]+)/ /index.html?var[0]=$1&var[1]=$2&var[2]=$3 [QSA,L]

こんなとこ?

◎質問者からの返答

パラメータ数は不定です。

hoge、fuga、piyo、foo、barと続く可能性もあります。


2 ● kn1967
●35ポイント

パラメータの数が無限に続く事は無いと思いますが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の文法上そういったループ的な記述が可能なのかどうかは、興味があるので引き続き回答を募集したいと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ