题 如何使Apache服务index.php而不是index.html?


如果我将以下行放入 index.html 文件,使Apache包括 index.php 文件:

  <?php include("/Live/ls_client/index.php"); ?>    

访问 index.html 页面显示我:

<!--?php include("/Live/ls_client/index.php"); ?-->

这是为什么?为什么它实际上不包含PHP文件?


29
2018-04-24 12:27


起源




答案:


正如其他人所说,很可能你没有 .html 设置来处理PHP代码。

话虽如此,如果你正在做的就是使用 index.html 包括 index.php,你的问题应该是'我该如何使用 index.php 作为索引文件?

在这种情况下,对于Apache(httpd.conf),搜索 DirectoryIndex 并用此替换该行(只有你有效才行 dir_module 已启用,但大多数安装都是默认设置):

DirectoryIndex index.php

如果您使用其他目录索引,请按优先顺序列出它们,即

DirectoryIndex index.php index.phtml index.html index.htm

54
2018-04-24 12:35



你也可以这样做 DirectoryIndex index.php index.html  - 如果在一台服务器上混合使用它们很有用。 - MarioP
编辑说。 - Glitch Desire
工作!,谢谢:) - Adam Wojda


截至今日(2015年8月1日), Apache2 在 Debian Jessie,你需要编辑:

root@host:/etc/apache2/mods-enabled$ vi dir.conf 

并更改该行的顺序,将index.php带到第一个位置:

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

9
2017-08-01 22:28



并且在2018年仍然强劲 - Gavin Simpson
是的,快乐的3yo生日,亲爱的回答(迟到2天)! - Dr Beco


PHP只适用于 .php 文件扩展名。

如果你在Apache上,你也可以在你的 httpd.conf 文件,PHP的扩展。你必须找到这条线:

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

并根据需要添加应该使用PHP解释器读取的扩展数。


7
2018-04-24 12:30



虽然你 能够 加 .html 扩展到apache配置中的php处理程序 - Brock Hensley
好吧,我会试试的。谢谢 - Adam Wojda
@dirt,对,补充道。 - Shoe
此外,服务器可以配置为接受index.php作为欢迎页面,无需冗余index.html。 - MarioP
@MarioP - 是的,这是我第一个想到的事情。 :P有时你必须意识到为什么有人会问一个问题来理解如何回答它。 - Glitch Desire