書き換えルールで次の動作を作成しようとしています。
https://domain.com/admin/user/add => /addedit.php?add=
https://domain.com/admin/user/add/ => /addedit.php?add=
https://domain.com/admin/user/add/123 => /addedit.php?add=123
https://domain.com/admin/user/add/123/ => /addedit.php?add=123
user
変数ですadd
「追加」または「編集」のいずれかです。- 末尾のスラッシュは常に許可されます
- 変数に割り当てられた (add|edit) の後のスラッシュの後には、さらに多くの文字列が存在する可能性があります
アクション ワード (add|edit) の後のオプションのスラッシュまでは問題ありません。それが、私の目標を達成するのに十分な正規表現を知らないところです。
次のようなものが機能します。
RewriteRule ^admin/(.*)/(add|edit)(/(.*)/?)?$ /admin/$1/addedit.php?$2=$3
ただし、URL のGET
変数にはスラッシュが含まれます。as(.*)
の途中で参照できると思いましたが、そうではありません。(/(.*)/?)?
$4
次に、非キャプチャ グループについて読んだので、?:
次のように追加しました。
RewriteRule ^admin/(.*)/(add|edit)(?:/(.*)/?)?$ /admin/$1/addedit.php?$2=$3
それはおそらく、私が見落としている比較的単純なことです。