rewrite兼容性设置,是用来解决开启伪静态的时候,一些空间不支持中伪静态问题当用户开启了伪静态,经常碰到含有中文用户名(使用username访问空间)的链接 出现“ 用户空间不存在”
出现这样的问题的原因:
如, 心梦 正常解析 为: %D0%C4%C3%CE 。 但是地址栏中看到的是:%25D0%25C4%25C3%25CE
%对再一次替换
这时选择rewrite兼容性,切换 。设置为“ 是” 或者“否”??查看是否解决
如果,还是出现,用户空间不存在
打开:function_core.php
找到:
- $_G[‘setting’][‘rewritecompatible’] && $username = rawurlencode($username)
复制代码
更为:
- $_G[‘setting’][‘rewritecompatible’] && $username = $username
复制代码
rawurlencode函数的作用:除了?-_.?之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数
这也就是%被二次处理的原因
将rawurlencode函数去掉
伪静态原理请阅读此贴:
Discuz! 伪静态分析
http://www.discuz.net/thread-2356464-1-1.html
后记:
该问题出现在工控之家论坛上,以上方法的解决思路看上去是正确的,但是通过该方法并没有完成解决,还是不得不取消了个人主页的伪静态。