У меня довольно много RewriteRules в моем .htaccess, которые выглядят так
RewriteRule ^something/(\d+)/start /index.php?ix=$1
RewriteRule ^embed/something/(\d+)/start /index.php?ix=$1&fEmbed=1
Единственное различие между этими двумя - это ведущее «embed /», поэтому я подумал, что было бы полезно объединить их в одно RewriteRule. Мои попытки застряли на
RewriteRule ^(embed/)?something/(\d+)/start /index.php?ix=$2&fEmbed=$1
Что устанавливает "& fEmbed = embed /", что на самом деле не то, что я хочу. Я хочу оценить содержимое $ 1 и вывести что-то другое (а именно «1»).
Есть идеи, как подойти к этому при объединении первых двух RewriteRule в одно RewriteRule?

Я думаю, что должно быть два правила, но они не должны делать одно и то же. Следующее не проверено, но, надеюсь, намерения ясны, если это не работает "из коробки":
RewriteRule ^(embed/)?something/(\d+)/start$ /index.php?ix=$2
RewriteRule ^embed/(.*) $1&fEmbed=1
Я предполагаю, что «/ start» всегда стоит в конце URL-адреса. Если нет, то это немного сложнее.
Обновлено: Читая комментарий Вегарда, я думаю, что, возможно, с этим можно справиться, поменяв местами правила:
RewriteRule ^embed/(.*) $1&fEmbed=1
RewriteRule ^something/(\d+)/start /index.php?ix=$1
Но все же, будет это работать или нет, зависит от реальных приложений.
Работая с идеей PEZ, я пришел к следующему:
RewriteRule ^something/(\d+)/start(&fEmbed=1)? /index.php?ixQuiz=$1&fStart=1$2
RewriteRule ^embed/(.*) $1&fEmbed=1
Не очень-то красиво, но работает. Теперь у меня может быть несколько правил, которые начинаются с «something /», и все они имеют префикс с помощью «embed /».
Правила не всегда заканчиваются началом и имеют больше параметров, чем показано. Однако идея хорошая, и я буду с ней экспериментировать.