Apache返回Content-Type text / plain而不是text / html

时间:2012-05-10 21:47:57

标签: apache content-type

我正在将应用程序从HP-UX迁移到Solaris

Apache 1.3.27 HP-UX B.11.11 U 9000/800 Solaris SunOS 5.10 Generic_147440-10 sun4u sparc SUNW,SPARC-Enterprise

在solaris中,我的整个应用程序工作正常,只有一个页面没有被解释。 我的网络服务器正在向我的网页发回错误的内容类型。它不是发送text / html,而是发送text / plain。我已经用Fiddler检查了这个。 当我访问资源时,我只看到html代码,作为纯文本。 CGI脚本没问题。 我已经在httpd.conf文件中将DefaultType更改为text / html。 此外,mime.types文件还具有内容类型.html和.htm扩展名 我可以在httpd.conf文件中设置一些其他参数来发送正确的内容类型吗?

PS。我无法升级apache,因为我没有被授权这样做。我必须使用这种环境。

问候。

2 个答案:

答案 0 :(得分:2)

乔治,你可能已经找到了解决方案,因为这是一年之久的帖子。无论如何我会发布它,因为现在“duckduckgo-ing”不会产生答案(或者我是一个糟糕的骗子)。这是我对经常使用的惊人知识库的小(和第一)贡献。

<强>解决方案:

应添加和配置模块mime

我发现如果模块被加载(内置到Apache或mod_mime.so),但文件mime.types不存在(或位于其他地方,而不是我说“它说”它在我的TypesConfig)然后Apache没有开始生成错误消息。如果模块未加载(或未编译),那么我将 text / plain而不是text / html 与主题启动器完全相同。

检查模块是否已编译为Apache可执行文件(以检查该类型

#httpd -l

#apache2 -l

取决于系统上的调用方式)。如果没有编译,那么你需要在httpd.conf中手动添加它(或者apache2.conf,再取决于你的系统)

LoadModule mime_module {full path to your mod_mime.so without the braces}

您可以使用命令find

找到它所在的位置
#find / -name mod_mime.so

然后,在httpd.conf下面的某处添加以下行

# mime
TypesConfig conf/mime.types
DefaultType text/plain

然后重新启动Apache。请注意mime.types中文件TypesConfig的路径不是文件的完整路径,而是与您的ServerRoot路径相关,因此请相应调整(如果需要)。

<强>注意!

要检查它是否有效首先清除浏览器缓存!我花了一段时间才发现服务器已经修复,但我的浏览器都提供了一个旧版本的页面,即使我按下了“重新加载页面”按钮。只有在我明确清除缓存后才能工作。

<强> PS

我认为应该是 serverfault ,不应该吗?

答案 1 :(得分:0)

我遇到类似的问题,Apache返回的是Content-Type text / plain而不是text / html。

我为解决这个问题所做的是:

步骤1:找到文件mime.types的位置。在我的Ubuntu框中,它是     /etc/mime.types,应包括以下行:

text/html        html htm shtml

步骤2:在apache2.conf中,将“TypesConfig conf / mime.types”替换为“TypesConfig /etc/mime.types”。

第3步:重启apache并运行。

我的Apache版本是:

$ /usr/sbin/apache2 -V
Server version: Apache/2.2.22 (Ubuntu)