我需要我的Ubuntu安装使用index.php作为默认文件。
添加
DirectoryIndex index.php
到/etc/apache2/apache2.conf
添加
<Directory /path/to/website/root/> DirectoryIndex index.php </Directory>
到/etc/apache2/sites-available/mysite.conf,然后启用和重新启动
sudo a2ensite mysite sudo service apache2 restart
我错过了什么? 但是,服务器不会加载默认文件。
注意:将DirectoryIndex index.php添加到.htaccess会导致所需的影响,但我更愿意通过.conf文件来完成此操作。
你把DirectoryIndex放在哪里? 将它添加到.htaccess相当于将该语句放在:
<Directory /path/to/htaccess/file/> DirectoryIndex index.php </Directory>
所以请尝试在DirectoryIndex周围添加一个目录语句。 有点骇人听闻,但它可能会工作? 如果它不尝试给我们更多的configuration,像整个虚拟主机configuration。
今天,我们在Apache 2.2上的SLES 11 SP4上也遇到了类似的问题,这个问题有很多默认的apacheconfiguration。 问题是,当没有明确地调用url时,Apache忽略了现有的index.html文件。 例如server.domain.tld / dir /
但是,如果使用显式文件调用它,则会提供内容。 例如server.domain.tld / dir / index.hmtl。 所以文件系统权限没有问题。 htdocs下的所有文件都具有足够的权限用于组OTHERS。 但所有的htdocs文件都归root.root所拥有。 所以在这个“模式”下,Apache没有提供index.html,如果没有在URL中提到的话。
我们recursion地将htdocs目录和文件改回到在SLES(suse linux enterprise Server)上是“默认”的所有者“wwwrun.www”而不改变权限本身的时候,apache开始再次为index.html服务预期。 没有重启,也没有什么需要
不能告诉这是一个错误还是一个function。 只是想让你知道我们经历了什么,解决了什么问题。
所以你可以检查你的htdocs文件的所有权,并确保它拥有的web服务器的帐户和组。
尝试使用位置指令代替。
<Location /path/to/htaccess/file/> DirectoryIndex index.php </Location>