htaccess 电子邮件正则表达式

pol*_*1er 3 regex .htaccess pattern-matching

我正在尝试以这种链接的方式编写模式:

http://www.mysite.com/link/go/emailadress@gmail.com

解释如下:

http://www.mysite.com/process.php?email=emailadress@gmail.com

但是我不知道怎么写。我尝试了这个,但它不起作用。需要帮助请。

这是我在 .htaccess 文件中写的但不起作用:

选项 +FollowSymlinks
重写引擎开启 
RewriteRule ^link/go/overview/([A-Za-z0-9-]+)$ /process.php?email=$1 [NC,L]

谢谢

Jay*_*Jay 5

RewriteRule link/go/(.*)$ process.php?email=$1
Run Code Online (Sandbox Code Playgroud)

这似乎有效。为了可读性process.php,您应该在中而不是在.htaccess规则中进行电子邮件验证(另外,您至少可以在页面上有一个很好的错误消息)。

这是有效的,因为后面的任何内容link/go/都将匹配(.匹配任何字符,因此.*意味着尽可能多地匹配任何字符,并(.*)意味着将其保存到$1-$最后意味着行尾,因此它将一直匹配到结尾)。

您尝试过的将不起作用,因为[A-Za-z0-9-]+只会匹配字母和数字,没有@..