php - 变量中无法识别下划线和破折号

标签 php regex apache .htaccess seo

我的 .htaccess 中有以下规则

RewriteRule ^([\da-z]+)/([\da-z]+)/(\d+)/?$ index.php?office=$1&page=$2&news_id=$3 [L,QSA,NC]
RewriteRule ^([\da-z]+)/([\da-z]+)/?$ index.php?office=$1&page=$2 [L,QSA,NC]

当我有一个像 www.test.com/media/continuous-training 这样的 url 时,它不会将连续训练发送到变量。如果我不使用破折号或下划线,一切都很好。

我认为问题出在规则中的正则表达式中,但不确定如何解决。

谢谢!

最佳答案

您需要将-_ 添加到您的字符类中。使用这个:

RewriteRule ^([\da-z_-]+)/([\da-z_-]+) ...

关于php - 变量中无法识别下划线和破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21984371/

相关文章:

php - codeigniter 后端和前端的路由配置

php mysql 行依赖性检查

java - 使用 java 从字符串中查找 mathml

apache - 如何在 apache vhost 中使用环境变量

php - 格式正确的 MySQL 日期插入语句返回全 0

Php,如何交换两个关联数组KEY?

java - 树结构的正则表达式?

javascript - RegExp,替换关键字的正确大写版本

apache - 在 Apache 2.2 虚拟主机中结合基本身份验证和 LimitExcept

apache - 如何禁用 Bitnami 堆栈中的页面速度?