【问题标题】:first dash is not recognized as delimiter第一个破折号未被识别为分隔符
【发布时间】:2013-12-02 19:28:59
【问题描述】:

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

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

有了这条规则:

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

问题是当我想获取 id 和 name 参数时,返回的是这个:

app_details.phpid=1-health&name=directory

正确的应该是

app_details.phpid=1&name=health-directory

怎么做?

谢谢

【问题讨论】:

    标签: php regex apache .htaccess mod-rewrite


    【解决方案1】:

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

    试试这个规则:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 2019-07-13
      相关资源
      最近更新 更多