Переписывание 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]
Кроме того, вам нужно сделать свой второй ([^/]*)
группировка не жадная.