解决 IIS W3C格式日志中中文路径乱码问题
条评论前言
之前得到友链大佬 网联基地 关于 域名备案期间处理方案中针对搜索引擎做单独解析 的启发,写了个 自动同步网站的批处理 把小站在小水管机上放了一份,是个 Windows Server,所以自然而然用的 IIS 作为网站服务端程序。IIS虽然是微软的亲儿子,但习惯了 nginx、caddy等网站程序来说,IIS 真的有点不适应,有些设计甚至有点反人类。
好在只是个给搜索引擎喂料的应用, IIS10 装完做了只基本的设置就投入上线使用了,使用中发现输出的日志如果有中文出现了乱码,网络上有关这个问题的解决方案几乎没有,或者没有一篇说到点子上。
IIS10 输出 W3C 格式日志中文乱码
因为网页源码已经指定了 <meta charset="utf-8">
,所以浏览器访问中文内容或者中文路径是没问题的,但输出的日志显示中文路径出现了乱码:
1 | 2024-05-12 08:45:56 GET /tags/淇勭綏鏂疺PS/ - 443 101.43.47.44 Googlebot - 200 21192 168 64 |
虽然这乱码貌似也没什么影响,但总归不知道这乱码具体内容是什么,搜索引擎爬取的是什么也不知道,也不知道正确与否。
乱码也分原始输出乱码和编辑器编码错误,如
notepad2
按F8
尝试UTF-8
等重新编码确认是不是原始乱码问题。如果是编辑器解码错乱那换编辑器或指定正确编码就可以了
解决日志中文乱码
这个乱码问题不是出在网页,而是 IIS10 的日志输出,所以需要额外处理。
首先打开IIS》定位到自己服务器》双击 日志
,日志文件编码选择 UTF-8
,然后从右侧:操作》管理服务器》重新启动
(不是重启服务器),如果不能解决问题接着往下看。
网上教程没有人提及过日志输出 W3C 格式时乱码的问题,自然也没有解决方案。倒是有些提及网站乱码的解决方案:全局设置解码方式
。
在既有的教程中,多半是有个 iis站点主页 .NET 全球化
的设置入口,但站长Windows Server 2022 上的 IIS10 版本没有安装 .net
组件,自然就没有这个入口,我们采用直接修改网站配置文件的方式来达到目的:
1 | <system.web> |
将以上配置代码添加到网站配置:web.cofig
,保存后重启网站,再查看 IIS 日志中有关中文的部分发现正常了:
1 | 2024-05-12 09:35:38 GET /tags/美国VPS/ - 443 101.43.47.44 Googlebot - 200 19447 159 62 |
IIS10网站配置样本:web.cofig
1 |
|
参考链接
本文标题:解决 IIS W3C格式日志中中文路径乱码问题
文章作者:凹凸曼
发布时间:2024-05-13
最后更新:2024-05-16
原始链接:https://sobaigu.com/iis-charset-chinese.html
版权声明:转载请务必保留本文链接和注明内容来源,并自负版权等法律责任。