奇瑰网

[教程] DZ论坛访问中文用户出现“抱歉,您指定的用户空间不存在...

[复制链接]
用户网龄
0.3年
6 8 1018

发表于 2021-3-8 22:40:31 | 显示全部楼层 |阅读模式
DZ论坛访问中文用户出现“抱歉,您指定的用户空间不存在”解决方法
今天遇到了这个问题,顺便解决了!纯属搬运,希望能帮到同样出现此问题的朋友!

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函数去掉即可!



DZX 对中文用户名的链接经常会出现“抱歉,您指定的用户空间不存在”,配置伪静态之后兼容性选择是.打开中文用户名个人空间是空白.选择否.打开个人空间就提示:抱歉,您指定的用户空间不存在..

用去掉function_core.php里面的rawurlencode函数的办法.打开任何页面.直接显示服务器500错误.我艹!!看来只能自己DIY了..

由于2个DZ.一个UTF8未出现这个问题.GBK的出现这个问题.怀疑是编码的问题..怕替换到其他地方出错.只替换了home_space.php解决问题...


解决方法如下:

打开\source\module\home\home_space.php文件,找到如下代码:
本帖隐藏的内容

if($_GET['username']) {
$member = C::t('common_member')->fetch_by_username($_GET['username']);
if(empty($member) && !($member = C::t('common_member_archive')->fetch_by_username($_GET['username']))) {
showmessage('space_does_not_exist');
}

替换成下面这段代码即可!!

if($_GET['username']) {
$gbk_username=iconv('UTF-8','GBK',urldecode($_GET['username']));
$member = C::t('common_member')->fetch_by_username($gbk_username);
if(empty($member) && !($member = C::t('common_member_archive')->fetch_by_username($gbk_username))) {
showmessage('space_does_not_exist');
}


然后在后台Rewrite 兼容性.选择否...问题解决..........


使用高级回帖 (可批量传图、插入视频等)

发表回复

您需要登录后才可以回帖 登录 | 账号注册   微信登录

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快捷导航
Powered by Discuz! X3.4 ( 粤ICP备20013252号-1
Copyright © 2014-2021 奇瑰网 粤公网安备44130302100219号
快速回复 返回顶部 返回列表