我使用.htaccess文件通过URL传递加密值,如下所示: 网址:
http://www.website.com/folder1/f1/tdT9Eu%2b8kmAe1U%2ft12RS
htaccess文件:
RewriteRule ^f1/(.+)$ index.php?id=$1 [NE]
问题是服务器响应在此服务器上找不到请求的URL。但是,当我将%2f
替换为/
和%2b
b s+
时,它的效果非常好,我可以看到该页面的内容。
当我使用url而没有任何重写时,它也很有效,如下所示:
http://www.website.com/folder1/index.php?id=tdT9Eu%2b8kmAe1U%2ft12RS
你能帮忙解决这个问题吗?如何修改我的htaccess以使其工作?因为我需要使用url重写来获取内容,如上所示
答案 0 :(得分:1)
这是由于URI中存在%2f
,默认情况下Apache Web服务器通常不允许这样做。在查询字符串中允许?id=...
工作正常的原因。
为此,您需要在Apache配置中turn on AllowEncodedSlashes directive。
使用:
AllowEncodedSlashes On
允许URI中的编码斜杠并重新启动Apache Web服务器。
答案 1 :(得分:0)
我想你会在这里找到你想要的答案:Htaccess RewriteRule to accept special characters
基本上,将其更改为RewriteRule ^f1/(^/.+)$ index.php?id=$1 [NE]