配置虚拟主机后仍然获得404

时间:2014-07-12 08:53:09

标签: php apache .htaccess symfony ubuntu-12.04

好的,我正在尝试在本地计算机上设置Symfony 2演示应用程序。我使用apache 2.2 web-server,我将项目文件下载到我的〜/ myproject /目录(在我的Home文件夹中)。正如Symfony文档在此处所述[{3}}我在/ etc / apache2 / sites-available /中创建了文件“myproject”,内容如下:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName myproject
ServerAlias www.myproject

DocumentRoot /home/dmitriy/myproject/web
  <Directory /home/dmitriy/myproject/web>
        # enable the .htaccess rewrites
        AllowOverride All
        Order allow,deny
        Allow from All
    </Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

我禁用了默认的apache配置,并通过运行

启用了“myproject”
sudo a2dissite default && sudo a2ensite mysite
之后我重启了apache

sudo /etc/init.d/apache2 restart

现在,symfony演示项目附带了web /目录中的.htaccess文件,其内容如下:

DirectoryIndex app.php

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]

RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /app.php/
    </IfModule>
</IfModule>

根据我的理解,我现在应该可以通过地址“www.myproject”或“myproject”查看项目的索引页面了吗?因为这两行

ServerName myproject
ServerAlias www.myproject

但这不起作用,当我尝试浏览器显示一些谷歌搜索结果时。当我尝试添加localhost /我得到404时,只有当我键入localhost / app_dev.php或localhost / config.php时,我才能看到真正的页面,但它不是应该工作的方式吗?有些事情是错的,显然我在某些方面犯了一个错误,但我缺乏经验和它。

1 个答案:

答案 0 :(得分:1)

我忘了编辑我的/ etc / hosts文件。添加127.0.0.1 myproject www.myproject后,它终于有效了!