[英]After configuring virtual hosts still get 404
好的,所以我想在本地计算机上设置Symfony 2演示应用程序。 我使用apache 2.2网络服务器,并将项目的文件下载到我的〜/ myproject /目录中(在我的Home文件夹中)。 由于Symfony文档在这里推荐,因此http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html我在/ 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
但这不起作用,当我尝试浏览器显示一些google结果时。 当我尝试在localhost /前面添加404时,只有输入localhost / app_dev.php或localhost / config.php时,我才能看到真实的页面,但这不是它应该工作的方式吗? 出了一些问题,显然我在某个时候犯了一个错误,但是我缺乏经验。
我忘了编辑/ etc / hosts文件。 添加127.0.0.1 myproject www.myproject
它终于可以工作了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.