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