我刚刚安装了 CentOS、Apache 和 PHP。当我访问我的网站http://example.com/myapp/时,它显示“禁止”。默认情况下它不加载 index.php 文件。
当我访问http://example.com/myapp/index.php时,它工作正常。
知道如何解决这个问题吗?
我刚刚安装了 CentOS、Apache 和 PHP。当我访问我的网站http://example.com/myapp/时,它显示“禁止”。默认情况下它不加载 index.php 文件。
当我访问http://example.com/myapp/index.php时,它工作正常。
知道如何解决这个问题吗?
Apache 需要配置为将 index.php 识别为索引文件。
实现这一点的最简单方法..
在您的 Web 根目录中创建一个 .htaccess 文件。
添加行...
DirectoryIndex index.php
这是有关此事的资源...
http://www.twsc.biz/twsc_hosting_htaccess.php
编辑:我假设 apache 配置为允许 .htaccess 文件。如果不是,则必须修改 apache 配置文件 (httpd.conf) 中的设置
虽然将“DirectoryIndex index.php”添加到 .htaccess 文件可能会起作用,
笔记:
一般来说,你永远不应该使用 .htaccess 文件
这是引用自http://httpd.apache.org/docs/1.3/howto/htaccess.html
虽然这是指旧版本的 apache,但我相信这个原则仍然适用。
将以下内容添加到您的httpd.conf(如果您可以访问它)被认为是更好的形式,导致更少的服务器开销并且具有完全相同的效果:
<Directory /myapp>
DirectoryIndex index.php
</Directory>
编辑:在编辑时,v1.3 文档已关闭。v2.4 文档(编辑时的当前版本)有类似的立场:
一般来说,
.htaccess
应尽可能避免使用文件。您考虑放入.htaccess
文件的任何配置,都可以有效地在<Directory>
主服务器配置文件的一个部分中进行。
猜测我会说目录索引设置为 index.html 或某种变体,请尝试:
DirectoryIndex index.html index.php
这仍然会使 index.html 优先于 index.php(如果您需要抛出维护页面,这很方便)
这可能对某人有帮助。这是来自 httpd.conf 的片段(Apache 版本 2.2 windows)
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php
</IfModule>
现在这将查找 index.html 文件,如果未找到它将查找 index.php。
这篇文章可能很旧,但我只是发布它以防它帮助其他人,我不建议在您的 Web 根目录中创建一个 .htaccess 文件并更改索引。我觉得最好按照步骤
转到您的 apache 文件夹的 conf 文件夹,我的文件夹是
C:\Apache24\conf
打开名为
httpd.conf
转到该部分
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
添加 index.php 如下所示
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
这样,它仍然选择 index.html 和 index.php 作为默认索引,但优先考虑 index.html,因为index.html在 *index.php 之前。我的意思是你在同一个目录中同时拥有 index.html 和 index.php,index.html 将被用作默认索引,除非你在index.hml之前写 **index.php*
我希望它可以帮助某人......快乐编码
尝试使用以下内容创建 .htaccess 文件
DirectoryIndex index.php
编辑:实际上,是不是有一个 'php-apache' 包或你应该与它们一起安装的东西?
在阅读了所有这些并尝试修复它之后,我在 ubuntu 论坛(https://help.ubuntu.com/community/ApacheMySQLPHP)上得到了一个简单的解决方案。问题在于 libapache2-mod-php5 模块。这就是浏览器下载 index.php 文件而不是显示网页的原因。请执行下列操作。如果 sudo a2enmod php5 返回模块不存在,则问题出在 libapache2-mod-php5。使用命令清除模块 sudo apt-get --purge remove libapache2-mod-php5 然后再次安装 sudo apt-get install libapache2-mod-php5
这个工作就像一个魅力!
第一的
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php
</IfModule>
然后从
<Files ".ht*">
Require all denied
</Files>
到
<Files ".ht*">
Require all granted
</Files>
我有类似的症状。不过,就我而言,我的白痴无意中在 Web 根文件夹中也有一个空的 index.html 文件。当我没有明确请求 index.php 时,Apache 正在提供此服务而不是 index.php,因为DirectoryIndex
在以下配置mods-available/dir.conf
:
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
也就是说,“index.html”在优先级列表中出现在“index.php”之前。从 Web 根目录中删除 index.html 文件自然可以解决问题。哦!