您现在的位置: 365建站网 > 365学习 > discuz论坛中文用户出现“抱歉,您指定的用户空间不存在”解决方法

discuz论坛中文用户出现“抱歉,您指定的用户空间不存在”解决方法

文章来源:365jz.com     点击数:389    更新时间:2018-10-13 20:56   参与评论

Discuz论坛在正常运营下,大部分站长们都会选择开启全站伪静态,因为这样可以让整个论坛更好的被蜘蛛爬取,然后做上排名,得到流量盈利也就自然而然的来了。无忧主机的香港独立IP空间也同样有着优化蜘蛛排名的功能,让你的网站更好的被收录。很多站长朋友们开启了伪静态以后就出现了这样的问题,点击主页的个人中心就提示:“抱歉,您指定的用户空间不存在”,那么这个问题有很多解决方法,在各大论坛上也有很多相对应的解决方法,无忧小编今天有一个最方便,最实际的方法,就是在Discuz后台,全局,SEO设置,URL伪静态设置里面,把,用户个人主页的伪静态的勾勾去掉,不要让这个实现伪静态,那么这个问题就得到解决了,记得dz后台清理缓存哦。

QQ截图20181013210303.png

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

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

%对再一次替换

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

打开:source/function/function_core.PHP
找到:$_G['setting']['rewritecompatible'] && $username = rawurlencode($username)
更为:$_G['setting']['rewritecompatible'] && $username = $usernam

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

但有些用户说去掉rawurlencode函数的该法是不安全的。可以使用下面的办法:

找到source/module/home/home_space.php找到

if($_GET['username']) {
$member = C::t('common_member')->fetch_by_username($_GET['username']);

修改为:

if($_GET['username']) {
$_GET['username']=urldecode($_GET['username']);
$member = C::t('common_member')->fetch_by_username($_GET['username']);



如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (389人查看1条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
2018年11月07日 11:15去你大爷

去你大爷的,这教程自己都没测试过吗?搞得网站都打不开,草

------分隔线----------------------------