discuz中文会员用户名伪静态链接打开提示“抱歉,您指定的用户空间不存在”完美解决办法

 符文浩   2019-06-16 23:45   60 人阅读  0 条评论

需要解决各类discuz疑难杂症可以联系技术QQ:129820

换了服务器之后搭建的IIS+PHP 然后发现用户空间居然打不开了 提示“抱歉,您指定的用户空间不存在” 并且地址栏中文乱码

其实之前linux系统下是木有问题的虽然也是乱码的但是可以打开,咋换了iis的就变了捏?


目前网上普遍搜索到的答案....反正我照着做是没成功,简直就是坑爹...这里我也贴出来,如果你不幸遇到此类现象不妨试试看吧!


 这个问题很严重哇~


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

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

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





反正我照着上面的方法是没有成功解决问题!


于是换一种逆向思路不折腾程序代码的问题,既然问题出在iis环境下 rewrite伪静态中文无效,那么就解决这个问题!


正确的解决办法其实只有4个字符就ok [注意空格   在规则后面添加 [NU] 即可完美解决!


RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1 [NU]


原来这么简单,对,就是这么简单,discuz那么多人都遇到此类问题的 居然没有人给出一个正确的方法

我很费劲,害我找了半天 希望后来者看到此篇文章
能够对你有些许的帮助吧!


打赏
本文地址:http://blog.haozi.org/post/224.html
版权声明:本文为原创文章,版权归 符文浩 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?