我正在尝试使用包含电子邮件地址的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/
答案 0 :(得分:2)
像这样使用你的规则:
RewriteRule ^user/verify/([^/]*)/(.*)/?$ user.php?email=$1&token=$2 [L,NC]
这将捕获user/verify/
和sdfdsfa7dfs6dsfa6dsf8/
之间的所有内容作为电子邮件地址。
答案 1 :(得分:1)
想到的一个明显原因是你正在寻找
www.example.com/的用户 /user@email.com/sdfdsfa7dfs6dsfa6dsf8 /
但你的正则表达式
^的用户/验证强> /([A-ZA-Z0-9 _-。@] +)/([A-ZA-Z0-9] +)/?$
但也许这只是你问题中的一个错误?
至于电子邮件地址,已经有很多关于这个主题的讨论:regex+email。可能存在与您的正则表达式不匹配的电子邮件地址,例如其中加上+
(加号)。