我有.htaccess文件将http请求重定向到https。当文件处理包含urlencoded数据的链接时,传递到我的php脚本的后续数据在使用$ _REQUEST数组访问时不会获取urldedoded数据。这是.htaccess代码:
RewriteEngine On
RewriteCond %{SERVER_PORT} !443
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
具体来说,输入的一个字段是一个电子邮件地址,它被编码为em = someone%40gmail.com,这正是我的PHP脚本从$ _REQUEST [“em”]变量获得的。这应该是解码数据并且没有重定向它是正确的,但是在插入重定向之后,数据不被解码。关于我做错什么的任何想法?感谢。
答案 0 :(得分:0)
尝试在规则中使用NE NoEscape标记:
RewriteEngine On
RewriteCond %{SERVER_PORT} !443
RewriteRule ^(.*)$ https: //%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
确保在测试此规则之前清除浏览器缓存。