为什么我无法加载默认站点操作?

时间:2013-01-02 00:43:03

标签: php apache .htaccess zend-framework

我将我的Zend FW应用程序从我的Ubuntu PC(olddomain)移动到Ubuntu笔记本电脑。后来我将一个版本复制回我的Ubuntu PC并将其设置在另一个虚拟主机(newdomain)下。现在,当我转到新虚拟主机的根目录时,我会看到默认的apache主机页面(即“It Works!”),而不是我站点的默认页面。为什么会这样?

更多信息:

  • 当我导航到newdomain / index.php时,会显示正确的页面
  • .htaccess文件与olddomain和newdomain相同
  • 新旧域名的index.php文件相同
  • 我看不到任何权限差异
  • 两个域的/ etc / hosts记录相同
  • 我启用了网站(a2ensite),并重新启动了apache

我错过了什么?

谢谢!

编辑:这是新域的虚拟主机配置,“front15”:

<VirtualHost *:80>
    ServerName front15
    DocumentRoot /media/mainhdd/development/www/front/v15/public

    SetEnv APPLICATION_ENV "development"

    <Directory /media/mainhdd/development/www/front/v15/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

2 个答案:

答案 0 :(得分:2)

在我的/ etc / hosts文件中,我在一行上有多个虚拟主机,都指向同一个IP(127.0.0.1)。我将它们分开,每行一个,现在它工作正常。

答案 1 :(得分:0)

我认为有两种可能会导致此问题。其中一个(最不可能的可能性)是你的.htaccess或apache.conf文件中有一个mod_rewrite规则,该规则特定于此设置中不存在的IP或域。

mod_dir的httpd DirectoryIndex指令更有可能首先列出 index.html 索引之前。 PHP 。您必须记住mod_dir按顺序使用DirectoryIndex参数,第一个参数优先于第二个参数,依此类推。因此,如果您有DirectoryIndex index.html index.php并且根网页目录中有 index.html 文件以及 index.php 文件,则httpd将使用< em> index.html 而不是 index.php ,因为那是它首先找到的那个。顺便说一下,这是默认设置。

因此要么从该目录中删除index.html,要么更改httpd.conf或vhost文件中的DirectoryIndex指令,以便在index.html之前使用 index.php ,这样 index.php 文件始终优先。