Apache 返回内容类型 text/plain 而不是 text/html

标签 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-企业

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

PS。我无法升级 apache,因为我无权这样做。我必须在这种环境下工作。

问候。

最佳答案

Jorge,您可能已经找到了解决方案,因为这是一年前的帖子。无论如何我都会发布它,因为现在“duckduckgo-ing”不会产生答案(或者我是一个坏duckduckgoer)。这是我对我经常使用的令人惊叹的知识库的微小(也是第一个)贡献。

解决方案:

应添加并配置模块 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。请注意,TypesConfig 中的文件 mime.types 的路径不是文件的完整路径,而是与您的 ServerRoot 路径相关,因此请调整相应地(如果需要)。

小心!

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

PS

我认为它应该出现在serverfault上,不是吗?

关于Apache 返回内容类型 text/plain 而不是 text/html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542639/

相关文章:

java - 如何使用 Apache POI 将网格线添加到 Excel 折线图

linux - 将 www 别名添加到站点子域

permissions - 内容类型隐藏和权限

ms-word - 如何提供 .RTF

ios - safari ios 无法打开存折 pkpass

django - ImportError : No module named django. core.handlers.wsgi 在 apache 上安装 django mod_wsgi 配置

apache - Hive日期功能实现星期几

Apache .htaccess 将子域重定向到父域

json - 面向开发人员的 API。我应该使用什么内容类型?

spring - 为什么 spring 会覆盖 header 中的 Content-Type?