htaccess rewriterule - 逃避反向B标志替代

时间:2012-11-19 11:30:01

标签: php apache .htaccess mod-rewrite

我正在尝试重写一个包含&的网址。符号。我试过用&和%26,但两者都被apache剥夺了。

例如,如果网址为:

healthyliving/fruit/apples_&_pears

并且重写者是:

RewriteRule ^healthyliving/fruit/([^/.]+)$ food.php?subpage=healthyliving&item=$1 [QSA,L]

查询字符串会显示“apples_& pears”,但_GET['item']会显示“apples ”。

根据我的阅读,大多数解决方案都使用B标志来逃避反向引用。这个标志在2.2.7中引入。不幸的是我们运行的是早期版本,由于各种原因我们现在无法升级。

有没有办法在不使用B标志的情况下实现我的需要?

1 个答案:

答案 0 :(得分:0)

我不完全确定你用$ _GET想要完成什么,但你可以试试这个

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

哪个应该给你:

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