shoemeecho 2021-07-25 08:57 采纳率: 0%
浏览 77
已结题

ThinkPHP 5.1 伪静态 URL中包含中文的时候报错

这是线上测试项目地址:

https://wanweibaike.net/wiki/Category-..xx&等等 出现错误
https://wanweibaike.net/wiki/Category-..xx& 能正确显示
https://wanweibaike.net/wiki/Category-123abc 能正确显示

也就是只要有中文,就会报错,使用的thinkphp5.1框架,服务器环境为windows 2012R2, 安装宝塔面板,web环境为:PHP5.6+MYSQL5.6+IIS8.5,这个环境还安装了thinkphp 3.13, 伪静态url包含中文能正确显示,如:https://wanweicidian.com/wiki-猶是 (这是同服务器的另一个thinkphp3.13搭建的网站)



1、同服务器其他网站url包含中文能正常显示:证明不是IIS rewrite的问题;
2、路由规则为:Route::rule('wiki/Category-:title', 'Category/index')->pattern(['title' => '[\s\S]*']); 在本地wamp环境能正确获取中文:证明不是路由正则的问题;
3、同一套程序,在本地wamp环境能正常显示,在IIS上不能正确显示,但是其他网站在该IIS下又能正确显示。

  • 写回答

1条回答 默认 最新

  • Jason Ho 2021-07-25 16:03
    关注

    把那个含有中文字符的 《Category-..xx&等等 》转义一下:mb_convert_encoding($url, "UTF-8", "GBK")

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月16日
  • 修改了问题 7月25日
  • 修改了问题 7月25日
  • 创建了问题 7月25日