Php 如何在url中传递编码字符,如%2f和%2b?

Php 如何在url中传递编码字符,如%2f和%2b?,php,apache,.htaccess,url,mod-rewrite,Php,Apache,.htaccess,Url,Mod Rewrite,我正在使用.htaccess文件通过URL传递加密值,如下所示: 网址: htaccess文件: RewriteRule ^f1/(.+)$ index.php?id=$1 [NE] 问题是在此服务器上找不到请求URL的服务器响应。但是当我用/和%2bbs+替换%2f时,它工作得非常好,我可以看到页面的内容 当我使用url而不进行任何重写时,它也可以完美地工作,如下所示: http://www.website.com/folder1/index.php?id=tdT9Eu%2b8kmAe1U

我正在使用.htaccess文件通过URL传递加密值,如下所示: 网址:

htaccess文件:

RewriteRule ^f1/(.+)$  index.php?id=$1 [NE]
问题是在此服务器上找不到请求URL的服务器响应。但是当我用
/
%2b
b
s+
替换
%2f
时,它工作得非常好,我可以看到页面的内容

当我使用url而不进行任何重写时,它也可以完美地工作,如下所示:

http://www.website.com/folder1/index.php?id=tdT9Eu%2b8kmAe1U%2ft12RS

你能帮我一下吗?我怎样才能修改我的htaccess使之生效?因为我需要使用url重写获取内容,如上所示

我想你会在这里找到你想要的答案:


基本上,将其更改为
RewriteRule^f1/(^/+)$index.php?id=$1[NE]
这是由于URI中存在默认情况下Apache web服务器不允许的
%2f
。它在查询字符串中是允许的,这就是为什么
?id=…
工作正常的原因

为此,您将需要在Apache配置中进行配置

使用:


允许在URI中使用编码斜杠并重新启动Apache web服务器。

谢谢Christopher,我将尝试您的解决方案。我让你知道了嗨,克里斯托弗,不幸的是它没用。你还有别的想法吗?谢谢你可能的副本
http://www.website.com/folder1/index.php?id=tdT9Eu%2b8kmAe1U%2ft12RS
AllowEncodedSlashes On