Apache mod_rewrite %2B и плюс (+) знаки

Я использую апача / mod_rewrite для переписывания URL, но у меня есть проблемы со знаком "плюс".

Со следующим правилом..

RewriteRule ^/(.+[^/])/?$ http://localhost:8080/app/home?tag=$1 [P,L] 

Оба:

http://localhost/1+1 and http://localhost/1%2B2

закончите как

uri=http://localhost:8080/app/home, args=tag=1+2

Таким образом, в обоих случаях приложение переводит знак "плюс" в пространство, таким образом, это не может дифференцироваться между пробелами и знаками "плюс" больше.

Если я использую флаг "B", то в обоих случаях + знаки переводятся в %2B, и приложение заканчивается с той же проблемой, но инвертированный (и пробелы и знаки "плюс" являются знаками "плюс"),

Существует ли способ стать апачским для надлежащего выхода из %2B в знак "плюс" и не пространство?

Я считал что-то о mod_security, но я не использую это так, я не уверен, существует ли некоторый другой механизм защиты, который вызывает это?

Любая справка значительно ценилась бы!

6
задан user293479 26 March 2010 в 13:23
поделиться