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

时间:2015-03-10 04:45:19

标签: php html variables

给出以下index.html文件:

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

我希望看到&#34;欢迎来到EXAMPLE.COM&#34;,我所看到的只是&#34;欢迎来到&#34;。 如果代码检出会导致这种情况发生什么?

2 个答案:

答案 0 :(得分:3)

它没有运行,因为该部分不是html(它是php),但是你把它保存为html文件而不是php文件。

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

答案 1 :(得分:1)

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


如果您必须具有.html扩展名,通常可以将Web服务器配置为在.html个文件上运行PHP。例如,在Apache中,您可以在AddType文件或服务器配置(.htaccess)中使用httpd.conf指令:

AddType application/x-httpd-php .html

但是,这将在所有 .html文件(在该目录中)上运行PHP,这可能会给服务器带来不必要的负担。


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

Options +Indexes
DirectoryIndex index.html index.php

当浏览器请求以斜杠结尾的网址(例如http://mydomain.example/foo/)时,服务器将在DocumentRoot中搜索foo/index.htmlfoo/index.php(或者,两者,生成目录列表)。您现在可以使用适合的任何类型的索引文件,而无需更改您的URL。