Перепишите RegEx, URL, содержащий хотя бы один символ - PullRequest
1 голос
/ 11 марта 2010

У меня есть следующее RewriteRule:

RewriteRule ^/people/([A-Za-z0-9\-\_]*)/?$  /people/people_details.cfm?person=$1 [I,L]

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

[A-Za-z0-9\-\_]+

... есть дополнительное правило, чтобы сказать, что должен быть хотя бы один символ. Прямо сейчас, если я пойду к ...

/people/

... он должен перейти к документу по умолчанию index.cfm, но из-за правила он все еще пытается переслать мой people_details.cfm

Любая помощь?

Спасибо, George

Ответы [ 2 ]

1 голос
/ 11 марта 2010

Ваше регулярное выражение, которое вы вводите в свой вопрос, уже гарантирует, что должен быть хотя бы один символ. + означает «1 или более», в отличие от *, что означает «ноль или более». Просто измените * на +.

0 голосов
/ 11 марта 2010

... он должен перейти к документу по умолчанию index.cfm, но из-за правила он все еще пытается переслать на мой people_details.cfm

Это потому, что в конце у вас есть необязательный символ "/", что, вероятно, не то, что вы хотели.

...