Проблема .htacces RewriteRule - PullRequest
       7

Проблема .htacces RewriteRule

1 голос
/ 02 февраля 2010

Это работает:

RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/([0-9]*)(/{0,1})$                /main.php?id=$2&il[lang]=$1&page=$3 [L]

с этим URL:

http://localhost/showCategory/590/10

Теперь я тоже хочу поработать с этим:

http://localhost/showCategory/590/transport/10

Правило, которое я попробовал:

RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/([a-z\-_0-9\+]*)/([0-9]*)(/{0,1})$               /main.php?id=$2&il[lang]=$1&page=$3 [L]

Как поменять RewriteRule?

Ответы [ 2 ]

1 голос
/ 02 февраля 2010

Этот работает с обоими URL

RewriteRule ^([a-z]{2}/)?showCategory/([0-9]+)(?:/[A-Za-z0-9_-]+)?/?([0-9]+)/?$  /main.php?id=$2&il[lang]=$1&page=$3 [L]

Я также упростил {0,1} с помощью? который делает то же самое.

Ключ в (?:/[A-Za-z0-9_-]+)?, объяснение:

(?:                   Non-capturing group, so what's in here will not be put in any $n
  /                   Match the slash
  [A-Za-z0-9_-]+      Match any word with letters/numbers/dashes/underscores
)?                    Close non-capturing group, and the ? means it's optional
1 голос
/ 02 февраля 2010

Попробуйте это правило:

RewriteRule ^([a-z]{2}/)?showCategory/([0-9]+)/[a-z-_0-9+]+/([0-9]+)/?$ /main.php?id=$2&il[lang]=$1&page=$3 [L]
...