php - htaccess 删除 base 64 编码的 url 符号

标签 php .htaccess base64

我最近才注意到这个..

我在 base64 编码上使用 urlencode 通过 url 发送加密的图像链接,因此 url 中有一些 %2B 的 ie + 符号。

当我在 php 中通过 GET 访问 url 时

image.php?q={encoded}

当我执行 $_GET['q'] 时,我得到了正确的数据而无需对其进行 urldecoding,即 %2B 将被翻译为 + 等....

但我最近写了一个 htaccess 这样做

 RewriteRule ^image/(.*)?$ image.php?q=$1 [NC,L]

当我访问 $_GET['q'] 数据时...所有 %2B 都已替换为空格等...所以我需要运行

str_replace(' ','+',$_GET['q']) 

然后解密得到图片链接..

知道为什么会这样吗?...我需要在 htaccess 中设置一些默认标准吗?感谢大家的帮助。

最佳答案

重写规则确实使用 Percent-Escape-Sequences 解码 URL,解码后的字符串再次放入查询字符串中,“%2B”现在是“+”,PHP 将它们解码为“”(空格).

mod_rewrite 有一个标志:B

查看文档:http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_b

关于php - htaccess 删除 base 64 编码的 url 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17906908/

相关文章:

php - FOSUserBundle 编辑用户无法正常工作

php - 使用 .htaccess 在目录(包括所有子目录)中禁用 PHP

.htaccess - 默认语言根级别

coldfusion - 如何在解码 base64 字符串之前添加填充?

java - Android+Java 从服务器上的 URL 获取图像并作为字符串传递给客户端 : Base64 decode and encode not working

javascript - 输出数据时脚本无法正常运行

php - 通过 PHP (CodeIgniter) 从数据库中使用 JQuery 自动完成

html - 如果它位于单独的文件中,如何在 HTML 中显示 base64 编码的图像?

javascript - PHP循环仅在js中取出最后一个值

php - 通过 .htaccess 从 URL 隐藏目录名称