Linux で URL 書き換えを使用したいのですlighttpd.conf
が、正しい正規表現を取得できません。
私の Web URL は ip/cgi/aaa/bbb
、URL パスを書き換えたいです。私の目標は/var/www/cgi/aaa.cgi?par=bbb
ルールを次のように記述しますが"^/cgi/([^/]+)\/(.*)?"=> "/var/www/cgi/$1.cgi?par=$2"
、どういうわけかパラメーターpar
値を取得できません。
あなたの問題は、入力の最初のアンカーが原因です。
^/cgi
..開始時ip/cgi
なので、一致しません..ではありません。それを修正するには..あなたが持っているものの前に置きます:ip
/cgi
ip
^ip/cgi/([^/]+)\/(.*)?
# ^^ this part
以下は、変更が行われた後の出力です。
「^」は文字列の先頭にマッチします。あなたのIPは動的であるため、絶対的な「cgi」から一致するようにしてください。
http://gskinner.com/RegExr/で以下の入力を試してみましたが、うまくいきました。
/cgi/([^/]+)\/(.*)?
/var/www/cgi/$1.cgi?par=$2
ip/cgi/aaa/bbb
結果は ip/var/www/cgi/aaa.cgi?par=bbb です
結果文字列に「ip」を含めたくない場合は、使用します
(.*)/cgi/([^/]+)\/(.*)?
/var/www/cgi/$2.cgi?par=$3
ip/cgi/aaa/bbb
結果は /var/www/cgi/aaa.cgi?par=bbb (ip なし) です。