Php htaccess重写规则-转义反向引用B标志备选方案

Php htaccess重写规则-转义反向引用B标志备选方案,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我正在尝试重写包含&符号的url。我试过使用&和%26,但都被apache删除了 例如,如果url为: healthyliving/fruit/apples_&_pears 规则是: RewriteRule ^healthyliving/fruit/([^/.]+)$ food.php?subpage=healthyliving&item=$1 [QSA,L] 查询字符串将显示“苹果和梨”,但\u GET['item']将显示“苹果” 从我所读到的内容来看,大多数解决方案都使

我正在尝试重写包含&符号的url。我试过使用&和%26,但都被apache删除了

例如,如果url为:

healthyliving/fruit/apples_&_pears
规则是:

RewriteRule ^healthyliving/fruit/([^/.]+)$ food.php?subpage=healthyliving&item=$1 [QSA,L]
查询字符串将显示“苹果和梨”,但
\u GET['item']
将显示“苹果”

从我所读到的内容来看,大多数解决方案都使用B标志来转义反向引用。该标志在2.2.7中引入。不幸的是,我们运行的是早期版本,由于各种原因,我们现在无法升级


有没有一种方法可以在不使用B标志的情况下实现我所需要的功能?

我不完全确定您使用$\u GET想要实现什么,但是您可以试试这个

RewriteRule ^healthyliving/fruit/(.*)_&_(.*) food.php?subpage=healthyliving&item[]=$1&item[]=$2 [QSA,L]
这应该给你:

Array ( [subpage] => healthyliving [item] => Array ( [0] => apples [1] => pears ) )