Rewrite兼容设置

rewrite兼容性设置,是用来解决开启伪静态的时候,一些空间不支持中伪静态问题当用户开启了伪静态,经常碰到含有中文用户名(使用username访问空间)的链接 出现“ 用户空间不存在”

出现这样的问题的原因:
如, 心梦 正常解析 为: %D0%C4%C3%CE 。 但是地址栏中看到的是:%25D0%25C4%25C3%25CE

%对再一次替换

这时选择rewrite兼容性,切换 。设置为“ 是” 或者“否”??查看是否解决
如果,还是出现,用户空间不存在

打开:function_core.php
找到:

  1. $_G[‘setting’][‘rewritecompatible’] && $username = rawurlencode($username)

复制代码

更为:

  1. $_G[‘setting’][‘rewritecompatible’] && $username = $username

复制代码

rawurlencode函数的作用:除了?-_.?之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数
这也就是%被二次处理的原因
将rawurlencode函数去掉

伪静态原理请阅读此贴:
Discuz! 伪静态分析
http://www.discuz.net/thread-2356464-1-1.html

 

后记:

该问题出现在工控之家论坛上,以上方法的解决思路看上去是正确的,但是通过该方法并没有完成解决,还是不得不取消了个人主页的伪静态。

为您推荐