为什么这个 html 代码不起作用?

Why doesn't this html code work?

给定以下 index.html 文件:

<html>
<body>
<p>Welcome to <?= $_SERVER ['HTTP_HOST']; ?></p>
</body>
</html>

我希望看到"Welcome to EXAMPLE.COM",我只看到"Welcome to "。 如果代码检出,什么会导致这种情况发生?

它不是 运行 因为那部分不是 html(它是 php)但是你已经将它保存为 html 文件而不是 php 文件.

将其重命名为 index.php 并重试?

Web 服务器通常配置为 运行 PHP 仅在具有 .php 扩展名的文件上。您的 index.html 文件将按原样传递给浏览器,浏览器可能会忽略未知的 PHP 标签。如果你看一下网页的源代码,标签可能就在那里。


如果您必须有 .html 扩展名,您通常可以将 Web 服务器配置为 运行 PHP .html 文件。例如,在 Apache 中,您可以使用 AddType directive in an .htaccess file or in the server configuration (httpd.conf):

AddType application/x-httpd-php .html

但是,这将 运行 PHP 所有 .html 文件(在该目录中),这可能会给服务器。


更好的方法是使用 URLs 不带 扩展名。在 Apache 中,您可以使用 DirectoryIndex 指令指定 Web 服务器将搜索的索引文件列表:

Options +Indexes
DirectoryIndex index.html index.php

当浏览器请求一个以斜杠结尾的URL时,例如http://mydomain.example/foo/,服务器会在[=27]中搜索foo/index.htmlfoo/index.php =](或者,如果两者都失败,则生成一个目录列表)。您现在可以使用当前适合的任何类型的索引文件,而无需更改您的 URLs.