学习NO.1 发表于 2015-12-13 13:03:24

DISCUZ开启伪静态导致中文会员使用手机无法访问的解决方法

最近小编遇到一些使用Discuz开源程序建站的一些奇葩问题,例如首页白屏,后台不显示等等。道勤主机php虚拟主机是完美支持discuz程序的。道勤主机小编刚上班不久又遇到了一个新鲜事情,一个站长来联系小编说论坛无法访问了。小编通过网址访问发现正常的呀。后来经过了解说是手机登陆会员后不能访问了。开始小编的思路是有没有在网站后台开启手机访问权限呢?于是就登陆网站后台查看了下的确是开启了,并且伪静态也是正常开启了的。小编开始下一步分析,既然不能访问,那么小编先用自己的手机访问测试下,结果说也是可以的呀。后来了解到该站长注册的是中文会员名,小编开始的时候很是奇怪,既然英文会员名都是可以正常访问的,中文名区别在哪里呢?原来是中文名再登陆访问的过程中也是会转换为英文字符串的。那么该如何解决这个问题呢?小编研究了两个可行的解决方法下面来分析下吧。
第一种解决方法:
打开source\function\function_core.php,查找如下代码:
if(defined(‘CACHE_FILE’) && CACHE_FILE && !defined(‘CACHE_FORBIDDEN’))
修改为:
if(defined(‘CACHE_FILE’) && CACHE_FILE && !defined(‘CACHE_FORBIDDEN’) && !$_G[‘mobile’])
修改后上传覆盖就可以了。
第二种方法:
这种方法一般是对第一种方法的补充吧。如果第一种方法还是未得到解决就登陆网站的后台在伪静态设置的下方选择rewrite兼容性,切换 。设置为“ 否” 或者“是”然后再次打开function_core.php修改以下代码:
查找:
$_G[‘setting’][‘rewritecompatible’] && $username = rawurlencode($username)
更为:
$_G[‘setting’][‘rewritecompatible’] && $username = $username
修改后保存上传覆盖,这个时候就修改完毕了,这个时候还有一件事情要做就是更新下缓存文件。如果不更新可能手机中文用户还是不能登陆的。更新完毕,再次小编使用手机登陆中文的用户名果然就可以正常登陆了。
页: [1]
查看完整版本: DISCUZ开启伪静态导致中文会员使用手机无法访问的解决方法