Нужна помощь с регулярными выражениями - перенаправление URL - PullRequest
0 голосов
/ 23 мая 2010

Я пытаюсь перенаправить легко запоминающийся URL в файл php, но у меня возникли некоторые проблемы с регулярным выражением.

Вот что у меня есть на данный момент:

RewriteRule ^tcb/([a-zA-Z0-9]{1,})/([a-zA-Z0-9]{1,})/([a-zA-Z0-9]{1,}) /tcb/lerbd.php?autocarro=$1&tipo=$2&dsd=$3

Это работает, но только если я предоставлю все 3 аргумента. Я хочу, чтобы последние два аргумента были необязательными, поэтому он может работать только с первым или со всеми тремя. Я надеюсь, что вы можете помочь мне с этим.

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 23 мая 2010

Добавление? после того, как что-то в RegEx делает это необязательным. так что-то вроде:

RewriteRule ^tcb/([a-zA-Z0-9]{1,})/?(([a-zA-Z0-9]{1,})/([a-zA-Z0-9]{1,}))? /tcb/lerbd.php?autocarro=$1&tipo=$3&dsd=$4

Обратите внимание, что я ввел новую группировку вокруг 2-го и 3-го аргументов, поэтому обратные ссылки пришлось сместить. Вы можете также захотеть поставить необязательный / в конце, чтобы его можно было использовать так же, как если бы он указывал на каталог ...

0 голосов
/ 23 мая 2010

Вот как я решил проблему. Это может быть полезно для тех, кто может наткнуться на этот вопрос:

RewriteRule ^tcb/([a-zA-Z0-9]{1,})/?(([a-zA-Z0-9]{1,})/([a-zA-Z0-9]{1,}))?$ /tcb/lerbd.php?autocarro=$1&tipo=$3&dsd=$4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...