【问题标题】:How to render pages without .html extension as html pages in Apache server如何在 Apache 服务器中将没有 .html 扩展名的页面呈现为 html 页面
【发布时间】:2025-11-25 05:40:01
【问题描述】:

我制作了一个网页,应该将 html 文件加载到 iframe 中。当您单击某物时,它会出现在 中。尽管我的所有文件都是带有 html 标签的 html 文档,但它们没有扩展名。所以在 iframe 中,它呈现为纯文本。如何配置 Apache 服务器设置,以便在文件没有任何扩展名时将默认文件扩展名设置为“.html”?它与 .htaccess 文件有什么关系吗?

似乎我可以通过在该文件中做一些技巧来隐藏文件扩展名,但我正试图做相反的事情(添加扩展名)。我该怎么做呢?

【问题讨论】:

    标签: html apache server


    【解决方案1】:

    如果您使用的是 Apache 的an old version

    DefaultType text/html
    

    默认类型指令

    如果服务器无法以任何其他方式确定类型,将发送的 MIME 内容类型

    对于current version

    使用 mime.types 配置文件和 AddType 通过文件扩展名配置媒体类型分配,或使用 ForceType 指令为特定资源配置媒体类型。否则,服务器将发送没有 Content-Type 标头字段的响应,并且接收者可能会尝试猜测媒体类型。

    所以:

    # force all files to be text/html:
    <Location />
      ForceType text/html
    </Location>
    

    【讨论】:

    • 我应该在哪个文件中执行此操作? httpd.conf?
    • 可能。我通常将此类更改限制为特定的虚拟名称主机(并且每个主机都有单独的配置文件,这些文件包含在主 apache 配置中)。