生活在常宁,爱上常宁论坛! 广告服务

 找回密码
 免费注册

手机号码,快捷登录

27229查看|1回复

[Discuz!安装使用] 解决DiscuzX3.1 抱歉,您指定的用户空间不存在 问题

[Discuz!安装使用] [复制链接]
发表于 2014-4-12 18:49:01 | 显示全部楼层 |阅读模式
问题主要在论坛主页

QQ截图20140412184120.png
中文的用户,当开启伪静态后访问其空间显示:"抱歉,您指定的用户空间不存在"

找了一些资料,开启"Rewrite 兼容性",问题依旧
2014032258939321.jpg

接着找到一个说修改source/function/function_core.php,
方法是去掉function_core.php里面的rawurlencode函数的办法
问题还是没解决
  1. $_G['setting']['rewritecompatible'] && $username = rawurlencode($username) </B>
复制代码
替换为
  1. $_G['setting']['rewritecompatible'] && $username = $username
复制代码
最后还试了修改\source\module\home\home_space.php方法,可惜还是不行
  1. 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'); }
复制代码

修改为
  1. 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'); }
复制代码



兄弟我是真服了他了,没法,我的终极大招,
将"用户个人主页"的伪静态可用去掉,我不用了还不成吗
2014032259646129.jpg
各位用dz的,或许你没我这么悲剧,上面的方法能够解决也不一定
我的暂时就这样了,找到解决方法的,好心的给我回复下,谢谢
忘了贴下我的论坛的地址了http://bbs.52cnw.net


 楼主| 发表于 2015-1-22 17:54:34 | 显示全部楼层
最近有很多朋友反应鼠标移动到列表页用户名上面会出现:“您指定的用户空间不存在” 点进去后不无法找到用户空间。导致有的会员关掉伪静态。关掉后收录会有所减少,对大型站来说应该算损失吧,正好本人知道怎么解决,本帖欢迎收藏,留着备用。

打开后:
正常解析 为: %D0%C4%C3%CE 。 但是地址栏中看到的是:%25D0%25C4%25C3%25CE

在用 ISAPI_Rewrite 1.3 版的时,只要对URL进行 UrlEncode 处理,就可以正常接收到中文。
但是如果换为 3.1版以后 GB2312 的接收页面就是乱码了。
换用了 ISAPI_Rewrite 3.x 发现编码后的字符会变成乱码,如果直接使用中文不编码,则会被格式化为GBK字符串。
在RewriteRule 规则中添加 NU 即可恢复正常。
关于ISAPI_Rewrite中文变乱码解决方法如下:
1、在传输URL时,将中文进行urlencode,这样是没错的。
2、如果是ISAPI_Rewrite 3.x 只需添加 NU 参数即可。
参考代码:
Discuz伪静态中个人空间规则修改:
RewriteRule ^space-(username|uid)-(.+).html$ home.php?mod=space&$1=$2&%1[QSA,NU,PT,L]
ShopEx伪静态中中文字符搜索问题,修改规则如下:
RewriteRule ^(.*)$ index.php?$1 [QSA,NU,PT,L]
红色即为添加或修改部分。

3.0的规则如下:%1 [Q  注意中间有空格

RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1 [QSA,NU,PT,L]
修改好的.htaccess源文件提供下载: 请去掉.rar (754 Bytes, 下载次数: 24)





您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

b6广告位招商
快速回复 返回顶部 返回列表