解决因%2F导致URL重写时mod_rewrite失效的问题
来源:奈福网络 时间:2018-05-11 03:49:57上海网站建设上海网页设计奈福网络科技最近在维护上海永久自行车官网的时候,发现在用户中心有几个页面无法访问,经过研究分析发现,URL中只要包含了"%2F",Apache重写mod_rewrite就会失效。
奈福网络科技今天给大家分享几个解决方案:
方案一:打开Apache的"AllowEncodedSlashes"指令
aphace服务器配置文件cnforever_com.conf
<VirtualHost *:80> AllowEncodedSlashes On </VirtualHost>
或者
方案二:两次urlencode()
$url .= urlencode(urlencode($title))
原来的URL:
http://www.cnforever.com/user/signin/b=%2Fproduct%2Fdetail%2Fid%3D615
变成新的URL:
http://www.cnforever.com/user/signin/b=%252Fproduct%252Fdetail%252Fid%253D615
或者
方案三:使用js处理
js中两次encodeURIComponent(encodeURIComponent(backUrl))
或者
js中替换%2F为%252F
$(function(){ $(".pp_tab a").each(function(){ var href=$(this).attr("href"); if(href.indexOf("%2F")>0){ $(this).attr("href", href.replace(/%2F/g, "%252F")); } }) });
以上三个方案,您可以选择一个最方便、最适合自己的方案去操作。