Переписывание URL с не обязательными частями

В настоящее время у меня есть следующее переписать:

RewriteRule ([^/]*)/order/([^/]*)[/]? /order_form.php?lang=$1&plan=$2 [QSA,L]

который переводится в: /en/order/ OR /en/order/plan1/

Который работает отлично. Тем не менее, я хотел бы добавить что-то на обороте. Что-то вроде plan1-companyname.

Но я не могу заставить его работать.

Я старался:

RewriteRule ([^/]*)/order/([^/]*)-companyname[/]? /order_form.php?lang=$1&plan=$2 [QSA,L]

но это делает его обязательным. когда я включаю скобки

RewriteRule ([^/]*)/order/([^/]*)[-bucket/]? /order_form.php?lang=$1&plan=$2 [QSA,L]

это тоже не работает. Может кто-нибудь исправить меня или пнуть меня?

1 ответ

Решение

Вы хотите использовать круглые скобки вместо квадратных скобок:

RewriteRule ([^/]*)/order/([^/]*?)(-companyname)?/?$ /order_form.php?lang=$1&plan=$2 [QSA,L]

Кроме того, вам нужно сделать свой второй ([^/]*) группировка не жадная.

Другие вопросы по тегам