全て、
RewriteRulesの1つで興味深い小さな癖に出くわしました。これは、名前付きバック参照を使用して解決したいと考えていました。しかし、私が見ることができることから、これはApacheのmod_rewriteでは不可能です。
2つの着信URLがあり、それぞれにキー変数が含まれています。これらは、同じ基になるフレームワークアクションに書き換える必要があります。
受信URL:
/users/list/page-2
/users/list/2
必要な書き換えエンドポイント
/?module = users&action = list&pagenum = 2
私はこのようなことをしたかったでしょう
RewriteRule ^ /(?P <module>([\ w] +))/(?P <action>([\ w] +))/(page-)?(?P <pagenum>([\ d] + ))$ /?module = $ {module}&action = $ {action}&pagenum = $ {pagenum} [L、QSA]
ただし、Apacheはそのようにプレイすることをまったく望んでおらず、名前付きの後方参照の場所にnull値を与えてくれます。問題を回避するために、キャプチャされたグループ($ 1、$ 2、$ 4)への数値参照を使用しました(ただし、N = 9のapache制限のほぼ半分です)。だから、これは私にとってショーストッパーではありません。
名前付き後方参照がApacheのmod_rewriteで使用できるかどうか、また使用できる場合、RewriteRuleのパターンが一致しないのはなぜですか?
ありがとう、イアン