Двойное URL-декодирование в Apache + PHP

Денис Коновалов

Столкнулся с проблемой двойного декодирования URL. Суть в следующем:
В моем проекте есть htaccess следующего вида:
```
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} .(css|jpg|jpeg|JPG|JPEG|gif|png|zip|rar|doc|xls|js|tif|tiff|docx|xlsx|ico|woff2|ttf|woff|mp4|ogg|mp3|ogv|webm|wav|txt)$
RewriteRule ^(.*)$ $1 [L]

RewriteCond %{ENV:NS} !=1
RewriteCond %{IS_SUBREQ} =true
RewriteRule (.*) $1 [L]

RewriteRule (.*) index.php?URI=$1 [L,QSA]
```
т.е. все запросы кроме перечисленных (css, jpg, jpeg и т.д.) направляет на index.php, передавая строку запроса в GET[URI].

Далее, имеем запрос такого вида:
catalog/izdatel%3D505%20Games%3Bvozrast%3D12%2B/
По идее, в результате декодирования должно получится вот это в переменной $_GET['URI']:
catalog/izdatel=505 Games;vozrast=12+/
А по факту получаем следующее:
catalog/izdatel=505 Games;vozrast=12 /
т.е. тут декодирование произошло дважды. Посоветуйте что-то, как получить строку именно с плюсом, а не с пробелом. Может быть надо как-то правильно настроить htaccess чтобы убрать двойное декодирование? Мне в голову приходят только извращения вроде распарсивания REQUEST_URI.
Вот наглядно:
http://prntscr.com/cf9gg0

1 чел.