这里有很多类似的问题,但我找不到任何帮助我的问题。 基本上,我有一个像这样的字符串:
Collections/Linkin Park/Dead By Sunrise (2009) %2B Album Cover
该字符串是较长网址的一部分,此特定部分通过.htaccess RewriteRule分配给$ _GET数组。当我回显存储在$ _GET中的字符串时,我得到:
Collections/Linkin Park/Dead By Sunrise (2009) Album Cover
%2B刚刚消失(在网页源中,它显示三个空格)。这是为什么?我该如何预防?
只有+的错误。我知道php将+视为一个空格,但它不应该被编码。
答案 0 :(得分:2)
您应该在规则中使用B
flag,指示RewriteRule在应用转换之前转义非字母数字字符:
RewriteRule ^Entertainment/Music/(.*)/$ ?sub=Entertainment&page=Music&e1=$1 [B,QSA,NC,L]
现在当您转储$_GET
数组时,您将获得:
Array
(
[sub] => Entertainment
[page] => Music
[e1] => Collections/Linkin Park/Dead By Sunrise (2009) + Album Cover
)
注意+
之前Album Cover
的外观。