正規表現のグループ化

・( )正規表現のグループ化。括弧の中の正規表現にマッチした文字列は後方参照のために記憶。
・(?: )後方参照を伴わないグループ化。

 

(?: )は正規表現で評価するが、後方参照の$には使わない。

具体的にSEOの観点から、クエリパラメータを隠してリライトする。どれほどの効果があるかは疑問。

 

# アクセスURL → 変換URLの例
/hoge/foo123/bar456/ → /hoge/?HOO=123&BAR=456
/hoge/foo123/ → /hoge/?HOO=123&BAR=
/hoge/bar456/ → /hoge/?HOO=&BAR=456

 

# リライトルール
RewriteRule ^/hoge(?:/foo(.*))?(?:/bar(.*))?/$    /hoge/?HOO=$1&BAR=$2 [QSA,PT,L]

Apacheのリライトの後方参照の数は9個までしか使えないですが、、、