如何在IBM HTTPD服务器上设置Content-Type HTTP Header的charset部分?

时间:2018-03-30 14:11:13

标签: java character-encoding websphere ibmhttpserver

我有一个应用程序,它是一组Java Web服务和一些静态内容(HTML,XML,JavaScript等)。我知道JavaScript的字符编码有限,但HTML和XML可以使用各种字符编码。我碰巧知道所有这些文件都是UTF-8编码的。我正在使用的WebSphere应用程序服务器正确地将Content-Type设置为' text / html;字符集= UTF-8'对于HTML,但不适用于JavaScript或XML。他们将Content-Type标题设置为' application / javascript'和' text / xml'分别。我的安全人员告诉我,指定XML文件的字符集是一个漏洞。请记住这些是静态文件。

在IBM HTTPD Web服务器上(在WebSphere应用程序服务器前面)有一个指令可用于将字符编码添加到' text'的内容类型中。类型?在WebSphere上有一个指令我可以用来设置文本类型的默认字符编码吗?我认为在我"修复"这对于XML文件,然后我将被要求修复它用于CSS文件,JavaScript文件等。我宁愿修复它一次并完成。

如果之前已经提出此问题,请提供网址。我确实找到了this个问题,但它不一样。我正在研究this回答的可行性,但是有很多文件夹,我宁愿不记得在每个文件夹中添加一个.htaccess文件。

1 个答案:

答案 0 :(得分:0)

您可以将AddDefaultCharset utf-8附加到httpd.conf,并且一切都将附加到其上的charset,甚至是应用程序服务器生成的内容。 htaccess不是必需的,对appserver内容没有用。

如果您发现需要将上下文根,扩展名列入黑名单, 或其他任何内容,起诉<LocationMatch>AddDefaultCharset off

不幸的是,Header edit Content-Type...在V9之前的IBM HTTP Server中不起作用。在V9中,您可以轻松地选择当前的Content-Type:

Header always edit Content-Type ^(text/html)$ "$1 ; charset=utf8" Header always edit Content-Type ^(application/javascript)$ "$1 ; charset=utf8"