【问题标题】:Using ".html" to link to a .html.php file - what's the magic?使用“.html”链接到 .html.php 文件 - 有什么魔力?
【发布时间】:2009-07-13 13:38:15
【问题描述】:

这更像是一个好奇的问题。

所以我正在阅读 (Sitepoint's latest PHP/MySQL book) 的一章,其中作者提到使用扩展名“.html.php”来表示同时具有 HTML 和 PHP 的文件。我试了一下,发现了这个:

如果我有一个文件“fileA.html.php”,并且在“fileB.html”的某个地方,那么我有一个链接:

<a href="fileA.html">Text text</a>

我能够直接链接到正确解析的 fileA.html.php,尽管逻辑和书籍告诉我应该写 href="fileA.html.php"

任何人都知道 PHP 函数是做什么的,或者它是否只是标准的 PHP 行为? (并不是我在抱怨,这只是我的客户注意到并认为很酷的事情。)

【问题讨论】:

    标签: php html


    【解决方案1】:

    PHP 不是原因。 Apache 可能启用了mod_spelling 并且正在自动更正链接。这种行为在具有不同配置的服务器之间是不一致的。

    【讨论】:

      【解决方案2】:

      您必须配置您的服务器才能执行此操作。如果您使用的是 Apache,有很多方法可以通过 htaccess 重写规则或其他处理器来实现。

      但是,如果您要达到这些长度,为什么还需要 html?我会说要么使用适当的扩展类型(在这种情况下只是 .php)提供文件,要么使其无扩展或扩展可选。这样做的唯一原因是让您的用户更轻松。否则更改扩展名没有任何好处。

      【讨论】:

      • +1 用于转向与语言无关的 URL。 curagea,您可以指向“fileA/”并在目录中放置一个 index.php,大多数网络服务器(据我所知)将自动提供“fileA/index.php”。如果您曾经更改为 .html 或 .anything,则不必更改 URL。
      • 这是我的 .htaccess。我实际上没有写它,所以我不知道“AddHandler application/x-httpd-php .htm .php”这一行。我只添加了 .html 以便我可以知道我的 PHP 文件中也有 HTML 代码(无论它可能适用于何处)。关于 index.php 技巧,我知道,但我只少量使用它,因为它是一个非常简单的小型站点。
      【解决方案3】:

      我从未听说过这种行为。唯一想到的是某种 htaccess 重写 mod

      【讨论】:

        【解决方案4】:

        你也可以在你的 httpd.conf 中添加

        AddType application/x-httpd-php php
        AddType application/x-httpd-php html
        

        你所有的 .html 文件现在都可以在里面解析了。

        我觉得比较酷。

        HTH

        【讨论】:

          【解决方案5】:

          我通常把它放在 .htaccess 文件中:

          <Files *.html>
          AddHandler application/x-httpd-php .html .htm .php
          </Files>
          

          本质上,这意味着将 .html 文件视为 .php 文件。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-01-20
            • 2013-08-08
            • 2013-03-13
            • 2023-03-29
            • 2016-09-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多