何时使用 index.php 而不是 index.html

Posted

技术标签:

【中文标题】何时使用 index.php 而不是 index.html【英文标题】:when to use index.php instead of index.html 【发布时间】:2012-12-21 22:45:51 【问题描述】:

我对 php 比较陌生。有一件非常基本的事情一直困扰着我。我知道 php 用于使网站动态化。我还知道 php 是可用于制作动态网站的众多服务器端脚本语言之一。

但是,我不明白什么时候需要使用 index.php 页面。例如,如果我的索引页面上只有一个简单的登录页面,它也很可能只是一个简单的 html 页面。正确的?那我为什么要让它 index.php 而不是 index.html 呢?

一个示例情况的例子会很棒。

【问题讨论】:

你想多了。这没有严格的规定。如果页面只包含 html,您可以使用其中任何一个,因为在功能上,它不会有任何区别。 【参考方案1】:

当您希望在文件中执行 php 代码时,您必须选择 PHP 扩展名 (.php)。 PHP 代码是开始 <?php<? 和结束 ?> 标记之间的代码。

当不应执行任何 PHP 代码时,您可以使用 .html 扩展名。

通常在使用 .php 扩展名时,您会告诉 Web 服务器,它应该使用 php 解释器来处理文件,然后才能将其传送到浏览器。然后,php 解释器将用 PHP 代码的输出替换 <?php?> 之间的所有内容。就像你手动写的一样。处理后的文件将被传送到浏览器。

但是,使用 .php 扩展名告诉 Web 服务器处理 php 代码是可配置的。如果你愿意,你也可以使用其他文件扩展名。

还有一点需要指出。当您只键入 url 路径(没有文件名)时,例如:

http://www.myserver.com/

网络服务器 (apache) 搜索索引文档时有一个扩展名(文件名)的顺序。例如,一个 apache 配置可能包含如下部分:

<IfModule mod_dir.c>
      DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

表示按照上面的顺序搜索索引文档。这意味着如果您将 index.html 和 index.php 放在同一个文件夹中 - 并具有上述配置 - 总是 index.html 将由服务器提供。

【讨论】:

很好的答案,但是速度呢?如果您使用不必要的 php 代码来包含您可以直接写入 index.html 的 html 代码,它是否会使您的页面变慢? 是的,我明白了。但我的意思是:什么更快,例如:index.html = "...

some text

..." 或 index.php = "... somehtmlfile.html = ".. .

some text

..."。所以你可以将'somehtmlfile.html'中的代码直接写入index.html,或者你可以使用index.php然后将一些html代码外包给其他文件,但是这会使您的页面变慢吗?
当然,动态页面比静态 html 页面更昂贵。 @rave 这是一个不存在的问题:为什么需要动态页面使用 PHP,否则不需要。就是这样。 @Goku 没有标准,是配置问题【参考方案2】:

如果您将每个页面都以 .php 格式提供,则不会损害网站。 Apache 可以非常快速地提供任何 php,更不用说只包含静态 html 的了。

作为初学者,您可能会发现 php 会让您受益,因为它允许您创建简单的模板。例如,站点页眉和页脚包含可以写入一个文件,然后包含在所有其他页面中。

【讨论】:

【参考方案3】:

无论您使用 index.php 还是 index.html,这都不是什么大问题。你可以使用任何一个。唯一的问题是您需要 PHP(或任何其他服务器端脚本语言)来使您的网站动态化。

就像您有一个登录页面一样,您当然可以将其设为 inde.html,但您的逻辑要么必须在不同的文件中,要么必须嵌入在 HTMl 中。

【讨论】:

【参考方案4】:

您可以使用任何您喜欢的: 如果您更喜欢保留不使用 HTML 数据的表单和基本页面, 并将使用 php 的页面保留为 php 格式即可。

但我和我认为大多数其他人使用的一种方法是将所有页面制作为 php 文件。这是因为您可以在 php 文件中包含一个 html 文档并以同样的方式显示它。但是您不能从 html 文件中进行 php 查询,因此很容易总是使用 php,以防万一您想向其中添加一些 php 脚本。

索引.php:

<?php
$var = 5;
?>
<html>
<head>
<title>My Page</title>
</head>
<body>
<h2>Your variable was <?php echo $var; ?></h2>
</body>
</html>

【讨论】:

【参考方案5】:

默认情况下,apache 服务器需要一个扩展名为 .php 的文件来解析其中的 PHP 代码。但是,如果您愿意,您可以通过在配置文件中添加一行来配置您的服务器,以使用其中包含 PHP 代码的任何扩展名的文件。您可以自己编辑 apache 以支持 .HTML 扩展名中的 php。

【讨论】:

【参考方案6】:

简单来说,你可以很容易地访问 index.html 文件并获取它下面的数据。但是 index.php 很难访问。对于您的简单应用程序 index.html 将起到作用。如果您正在计划一些大型且安全的应用程序,请使用 index.php

【讨论】:

【参考方案7】:

这是因为有时你可能在index.php 上写了一些逻辑。就像您可以检查用户是否已登录,然后将用户重定向到某个特定页面。您也可以像移动设备一样进行基于设备的重定向。

你总是可以选择创建index.html,但你不知道什么时候你可能需要在那里有一些逻辑。

【讨论】:

【参考方案8】:

例如,在我的index.php 或其他主页中,我主要使用 php,因为我在网站的其余部分中使用带有变量的变量:

<?php 
     $sitepath="http://www.example.com/public";
     $author="your name here";
?>

因为我每次在我的网站上链接图片时都会&lt;?php echo $sitepath ?&gt;,所以它不会损坏或其他什么。由于我一直在重复使用该名称,因此我使用.php 来获得该服务,因为如果我使用该名称,我可以全局更改它。

我认为像 404.htmlaboutus.htmlViewOneBlogPost.html 这样的简单页面可能是 HTML 页面,您可能不需要任何功能/变量。

【讨论】:

【参考方案9】:

使用 linux 检查 apache2 中文件扩展名优先级的当前设置

/etc/apache2/mods-enabled/dir.conf

【讨论】:

【参考方案10】:

如果您有几个简单的页面,其中代码不会重复很多,那么您可以使用 HTML。但是相信我,如果你有一个 HTML 格式的整个网站,每个文件超过一千行,你会想要使用 PHP。为什么?因为requireinclude。这些将在您需要使用布局时清理您的代码,因此您无需继续复制布局页眉、页脚等的漏洞代码......当您需要插入内容并且有有很多代码。

这里有一些关于它的文档

https://www.php.net/manual/en/function.include.php

【讨论】:

以上是关于何时使用 index.php 而不是 index.html的主要内容,如果未能解决你的问题,请参考以下文章

如何设置网页默认index.htm而不是index.php?

Apache 列出目录文件而不是 index.php

Apache 列出目录文件而不是 index.php

htaccess 规则以在访问 http://localhost 时提供 index.php 而不是 index.html

删除 url 中的 Index.php 像“laravel-project/public/login”而不是“laravel-project/public/index.php/login”

Laravel 5.2 显示 apache 屏幕而不是 index.php