regex - htaccess 中的正则表达式仅传递 1 个字符
问题描述
我确实在 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
解决方案
你的问题是括号。代替:
RewriteRule ^signup/(\w){5,15}/?$ signup.php?referer=$1
你要:
RewriteRule ^signup/(\w{5,15})/?$ signup.php?referer=$1
这样它就会返回整个匹配的字符集,而不仅仅是最后一个。
推荐阅读
- java - Java 连接到 oracle 数据库需要很长时间
- css - 有没有办法让 calc 函数与 Sass 中的 * 运算符一起工作?
- python - Django如何显示用户输入的值
- java - 带有 Mongodb 的 log4j2 问题日志记录可抛出消息
- python-3.x - 使用石墨烯,与客户端发送graphql请求时,如何拦截+内省post数据?
- python - 如何在python中进行没有堆栈溢出的递归?
- python - 如何解决以下错误 - TypeError: unsupported operand type(s) for -: 'int' and 'str'
- discord.py - 将用户名设置为参数
- mysql - Knex - MySQL 如何在单个 JavaScript 字符串中执行多个语句?
- php - 如何在 Symfony 4 项目中更改 PHP 版本?