Php 第一个破折号不能识别为分隔符
A在url重写方面有问题。 我有这个网址: 根据这条规则:Php 第一个破折号不能识别为分隔符,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,A在url重写方面有问题。 我有这个网址: 根据这条规则: RewriteRule ^apps/([^_]*)-([^_]*)$ /app_details.php?id=$1&name=$2 [L,QSA,NC] RewriteRule ^apps/([^-]*)-(.*)$ /app_details.php?id=$1&name=$2 [L,QSA,NC] 问题是,当我想要获取id和name参数时,返回的是: app_details.phpid=1-health&
RewriteRule ^apps/([^_]*)-([^_]*)$ /app_details.php?id=$1&name=$2 [L,QSA,NC]
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
怎么办
Thx您的正则表达式不正确。您尝试匹配直到第一个破折号,然后使用
[^-]
而不是[^.]
(破折号!=下划线)
试试这个规则:
RewriteRule ^apps/([^_]*)-([^_]*)$ /app_details.php?id=$1&name=$2 [L,QSA,NC]
RewriteRule ^apps/([^-]*)-(.*)$ /app_details.php?id=$1&name=$2 [L,QSA,NC]
你的正则表达式不正确。您尝试匹配直到第一个破折号,然后使用
[^-]
而不是[^.]
(破折号!=下划线)
试试这个规则:
RewriteRule ^apps/([^_]*)-([^_]*)$ /app_details.php?id=$1&name=$2 [L,QSA,NC]
RewriteRule ^apps/([^-]*)-(.*)$ /app_details.php?id=$1&name=$2 [L,QSA,NC]