Мне нужна помощь со следующим Apache RewriteRule
RewriteRule ^(customers)/(active|create)/?$ /mod/customers/?type=$2 [NC,L]
Это правило работает, только если есть что-то после / Например: http://example.com/customers/active
/
http://example.com/customers/active
Это не будет работать, если URL будет http://example.com/customers
http://example.com/customers
Как можно написать этот RewriteRule, чтобы http://example.com/customers работал, а также http://example.com/customers/active
/customers, за которым ничего не стояло или /customers, за которым следует /active или /create
/customers
/active
/create
Вы можете использовать это регулярное выражение:
^(customers)(?:/(active|create))?/?$
Он использует необязательную группу без захвата для разрешения URL, такого как http://example.com/customers, а также http://example.com/customers/active. `Active | create все еще сохраняется в группе 2.
Демонстрация для regex101
Это регулярное выражение допускает конечный / для URL, например http://example.com/customers/ или http://example.com/customers/active/. Если это нежелательно, просто удалите /? перед $, т.е.
http://example.com/customers/
http://example.com/customers/active/
/?
$
^(customers)(?:/(active|create))?$
Демонстрация на regex101