0

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値を取得できません。

4

2 に答える 2

0

あなたの問題は、入力の最初のアンカーが原因です。

^/cgi

..開始時ip/cgiなので、一致しません..ではありません。それを修正するには..あなたが持っているものの前に置きます:ip/cgiip

 ^ip/cgi/([^/]+)\/(.*)?
# ^^ this part

以下は、変更が行われた後の出力です。

正規表現の出力

于 2013-03-14T03:34:04.347 に答える
0

「^」は文字列の先頭にマッチします。あなたの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 なし) です。

于 2013-03-14T04:35:42.480 に答える