Условный параметр .htaccess RewriteRule - PullRequest
0 голосов
/ 23 декабря 2008

У меня довольно много 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?

Ответы [ 2 ]

1 голос
/ 23 декабря 2008

Я думаю, что должно быть два правила, но они не должны делать одно и то же. Следующее не проверено, но, надеюсь, цель ясна, если она не работает "из коробки":

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

Но тем не менее, от реальных приложений зависит, будет ли это работать или нет.

0 голосов
/ 23 декабря 2008

Работая с идеей PEZ, вот что я придумал:

RewriteRule ^something/(\d+)/start(&fEmbed=1)?    /index.php?ixQuiz=$1&fStart=1$2
RewriteRule ^embed/(.*)                         $1&fEmbed=1

Не очень, красиво, но это работает. Теперь у меня может быть несколько правил, которые начинаются с «что-то /», и все они префиксируются с помощью «embed /".

»
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...