Подскажите с регуляркой в .htaccess

Сделал вот такой правило для подключения нужного языка(если задано) и собственно самой страницы:

RewriteRule ^(ua|ru|eng)?/?log/?$   index.php?module=Log&lang=$1  [L,QSA]

По такому правилу работают 3 ссылки:

  1. site.com/log
  2. site.com/ua/log
  3. site.com/ualog

Как можете видеть, 3 вариант довольно странный и может вредить в SEO(но это не точно). Причиной работы 3 ссылки является знак вопроса /?log. Если убрать этот знак вопроса, то при таком правиле не будет работать 1 пункт из списка. Как оставить 1 и 2 пункт, но исключить 3?


Ответы (1 шт):

Автор решения: PotroNik

Как вариант попробовать использовать дополнительную необязательную группу

((ua|ru|eng)?/)?log/?$

в данном случае будет изменена группа подставляемая lang на вторую и нужно будет использовать lang=$2

В дополнительной группе условие обязательное наличие /, т.е. совпадения не произойдет в случае если будет ualog.

→ Ссылка