htaccess中的正则表达式仅传递1个字符

时间:2019-01-07 02:37:36

标签: regex .htaccess

我确实在htaccess中使用了一个正则表达式来匹配我网站中类似Twitter的用户名,但它只是将$ _GET ['referer'] var的最后一个字符传递给了php文件。

这是正则表达式: ^(\ w){1,15} $

例如,如果我转到signup / johndoe /,它将向PHP发送“ e”

这是我的htaccess,您可能会看到,我不是Apache服务器专家。祝大家4岁,新年快乐。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^signup/(\w){5,15}/?$ signup.php?referer=$1 

1 个答案:

答案 0 :(得分:0)

您的问题是括号。代替:

RewriteRule ^signup/(\w){5,15}/?$ signup.php?referer=$1 

您要

RewriteRule ^signup/(\w{5,15})/?$ signup.php?referer=$1 

以便返回完整的匹配字符集,而不仅仅是最后一个字符。