Регулярное выражение

351
Andrew K

Мне нужно написать правило mod_rewrite, которое будет соответствовать следующей строке:

/modules/users/users/ae/ghwjzL9D2qpnPqv3FRY3JTZ48N 

единственная постоянная часть струны /ae/.

Мне нужно регулярное выражение, чтобы перехватить часть строки до /ae/и после /ae/и перенаправить соответствующим образом.

так как то так

URL введен: /modules/users/users/ae/ghwjzL9D2qpnPqv3FRY3JTZ48N

RewriteRule ^([a-z0-9\-\/])+\/ae\/([a-zA-z0-9])* $1/file.php?id=$2 

URL обработан: /modules/users/users/file.php?id=$2

до сих пор я могу поймать URL, но не могу получить правильные переменные

0
Возможно, вы захотите поставить `*` сразу после `]`, перед `)`; то есть `` `… 0-9] *)` ``. Scott 6 лет назад 2

1 ответ на вопрос

0
Andrew K

да, вы правы, мне пришлось чуть-чуть отрегулировать это:

^([a-zA-z0-9\/]+)\/ae\/([a-zA-z0-9]*) 
Причина, конечно, в том, что вы хотите сначала сопоставить серию символов и _then_ использовать всю серию как одну группу. (Вам не нужно много групп, состоящих из одного символа в каждой!) Следовательно, символы группировки `(…)` должны окружать совпадение _whole_, которое вы хотите поместить в переменную. grawity 6 лет назад 0

Похожие вопросы