第一个破折号未被识别为分隔符

时间:2013-11-19 09:53:54

标签: php regex apache .htaccess mod-rewrite

有网址重写问题。 我有这个网址:

http://www.example.com/apps/1-health-directory

遵守这条规则:

RewriteRule ^apps/([^_]*)-([^_]*)$ /app_details.php?id=$1&name=$2 [L,QSA,NC]

问题在于,当我想获取id和name param时,这就是返回的内容:

app_details.phpid=1-health&name=directory

正确的是

app_details.phpid=1&name=health-directory

怎么办?

THX

1 个答案:

答案 0 :(得分:4)

您的正则表达式不正确。您尝试匹配直到第一个破折号然后使用[^-]而不是[^_](破折号!=下划线)

尝试此规则:

RewriteRule ^apps/([^-]*)-(.*)$ /app_details.php?id=$1&name=$2 [L,QSA,NC]