何时使用 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";
?>
因为我每次在我的网站上链接图片时都会<?php echo $sitepath ?>
,所以它不会损坏或其他什么。由于我一直在重复使用该名称,因此我使用.php
来获得该服务,因为如果我使用该名称,我可以全局更改它。
我认为像 404.html
、aboutus.html
或 ViewOneBlogPost.html
这样的简单页面可能是 HTML 页面,您可能不需要任何功能/变量。
【讨论】:
【参考方案9】:使用 linux 检查 apache2 中文件扩展名优先级的当前设置
/etc/apache2/mods-enabled/dir.conf
【讨论】:
【参考方案10】:如果您有几个简单的页面,其中代码不会重复很多,那么您可以使用 HTML。但是相信我,如果你有一个 HTML 格式的整个网站,每个文件超过一千行,你会想要使用 PHP。为什么?因为require
和include
。这些将在您需要使用布局时清理您的代码,因此您无需继续复制布局页眉、页脚等的漏洞代码......当您需要插入内容并且有有很多代码。
这里有一些关于它的文档
https://www.php.net/manual/en/function.include.php
【讨论】:
以上是关于何时使用 index.php 而不是 index.html的主要内容,如果未能解决你的问题,请参考以下文章
如何设置网页默认index.htm而不是index.php?
htaccess 规则以在访问 http://localhost 时提供 index.php 而不是 index.html
删除 url 中的 Index.php 像“laravel-project/public/login”而不是“laravel-project/public/index.php/login”