服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - WEB服务器 - 伪静态URL中文乱码问题解决方法

伪静态URL中文乱码问题解决方法

2020-08-30 16:55服务器知识网 WEB服务器

ISAPI_Rewrite伪静态中文URL乱码的解决方案 细心有朋友会发现,在众多知名程序,比如ShopEx网店、Discuz论坛等系统的伪静态规则都存在中文编码问题

在 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 参数即可。

以下看两个伪静态含有中文字串的规则例子:

1、Discuz伪静态个人空间规则修改:

 

复制代码 代码如下:

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

 

2、ShopEx伪静态中中文字符搜索问题,修改规则如下:

 

复制代码 代码如下:

RewriteRule ^(.*)$ index.php?$1 [QSA,NU,PT,L]

 

蓝色部分即为修改部分。

延伸 · 阅读

精彩推荐