RewriteRule с адресом электронной почты - PullRequest
2 голосов
/ 12 мая 2011

Я пытаюсь создать RewriteRule, который может содержать адрес электронной почты.Я думаю, что-то не так с моим регулярным выражением.

RewriteRule ^user/verify/([a-zA-Z0-9_-.@]+)/([a-zA-Z0-9]+)/?$ user.php?email=$1&token=$2 [L]

У кого-нибудь есть мысли?

Ищете это:

http://www.example.com/user/user@email.com/sdfdsfa7dfs6dsfa6dsf8/

Ответы [ 2 ]

2 голосов
/ 12 мая 2011

Используйте ваше правило так:

RewriteRule ^user/verify/([^/]*)/(.*)/?$ user.php?email=$1&token=$2 [L,NC]

Это будет захватывать все между user/verify/ и sdfdsfa7dfs6dsfa6dsf8/ в качестве адреса электронной почты.

1 голос
/ 12 мая 2011

Одна очевидная причина, которая приходит на ум, это то, что вы ищете

www.example.com/users/user@email.com/sdfdsfa7dfs6dsfa6dsf8/

Но ваше регулярное выражение говорит

^ Пользователь / проверить / ([A-Za-z0-9 _-. @] +) / ([A-Za-Z0-9] +) /? $

Но может быть, это просто ошибка в вашем вопросе?


Что касается адреса электронной почты, на эту тему уже было много дискуссий: regex + email . Там могут быть адреса электронной почты, не соответствующие вашему регулярному выражению, например, со знаком + (плюс) в них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...