前几天有个用户反映开启了伪静态,导致欢迎最新会员含有中文名字的用户访问出错,主要原因是手机缓存问题导致两次处理的url问题。如:心梦,本应转换后的结果是 %D0%C4%C3%CE,但是被处理为: %25D0%25C4%25C3%25CE。

我之前一直以为是服务器不支持中文解析导致的,现在终于明白是手机缓存导致的问题了。

更改方法:打开source\function\function_core.php
找到 output函数

1
if(defined('CACHE_FILE') && CACHE_FILE && !defined('CACHE_FORBIDDEN'))

更改为:

1
if(defined('CACHE_FILE') && CACHE_FILE && !defined('CACHE_FORBIDDEN') && !$_G['mobile'])

如果你目前使用的版本正常,那就不要修改了。

如果你的伪静态还没有正常开启可以看教程:

Discuz X2.0门户伪静态失败的解决方法:http://www.h517.com/1587.html
IIS服务器下伪静态组件的安装方法:http://www.h517.com/1116.html
Apache服务器下伪静态设置方法:http://www.h517.com/1687.html