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

2019-06-16 1511 0条评论

换了服务器之后搭建的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.fuwenhao.com/post/224.html 发布于 2019-06-16
文章转载或复制请以超链接形式并注明出处。

发表评论

快捷回复:

评论列表 (暂无评论,1511人围观)参与讨论

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码