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


first dash is not recognized as delimiter

A在重写url时遇到问题。我有这个网址:

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

有了这个规则:

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

问题是,当我想获得id和名称参数时,返回的是:

app_details.phpid=1-health&name=directory

正确的是

app_details.phpid=1&name=health-directory

怎么办?

Thx

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

试试这个规则:

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