PHP Mod_rewrite和URL编码的符号 - 只能使用它们中的任何一个而不能同时使用它们?

lau*_*kok 6 php regex mod-rewrite urlencode request

mod_rewrite似乎在我将它转换为$ _REQUEST之前转换了plus的符号,我不知道要修复它...

RewriteRule ^invite/([a-zA-Z0-9\-\+\/]+)/?$   invite.php?key=$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)

例如,我将此输入到我的URL中,

http://mywebsite/invite/xPo8lUEXpqg8bKL%2B32o6yIOK
Run Code Online (Sandbox Code Playgroud)

我明白了

xPo8lUEXpqg8bKL 32o6yIOK
Run Code Online (Sandbox Code Playgroud)

但如果我输入此请求而不通过mod_rewrite,

http://mywebsite/invite.php?key=xPo8lUEXpqg8bKL%2B32o6yIOK
Run Code Online (Sandbox Code Playgroud)

我得到了我想要的东西,

xPo8lUEXpqg8bKL+32o6yIOK
Run Code Online (Sandbox Code Playgroud)

我能做什么?或者是我只能使用它们而不是两者兼而有之?

谢谢.

Bri*_*ian 3

尝试添加 [B] 标志(转义反向引用):

RewriteRule ^invite/([a-zA-Z0-9\-\+\/]+)/?$   invite.php?key=$1 [L,B,QSA]
Run Code Online (Sandbox Code Playgroud)