我是Symfony2的新手,并遵循EnsJobeet教程 。 我的VirtualHostconfiguration如下:
<VirtualHost *:80> ServerName jobeet.local DocumentRoot /var/www/ensjobeet/web/ DirectoryIndex app.php ErrorLog /var/log/apache2/jobeet-error.log CustomLog /var/log/apache2/jobeet-access.log combined <Directory "/var/www/ensjobeet/web/"> AllowOverride All Allow from All </Directory> </VirtualHost>
当我向jobeet.local / app_dev.php / job /发出请求时,当我向jobeet.local / app.php / job /发送请求时,我得到作业页面,我得到作业页面。 但是The requested URL /job/ was not found on this server. jobeet.local / job / 404 The requested URL /job/ was not found on this server.
我会想,请求jobeet.local /和jobeet.local / app.php /将是相当的,但他们似乎没有这样的环境configuration我有错的一些其他方面?
mod_rewrite已安装,但未启用。 傻我!
这里是prod和dev vhosts的例子
# Symfony 2 : monapp.dev <virtualHost *:80> ServerName monapp.dev DocumentRoot /data/www/MonApp/web/ <Directory "/data/www/MonApp/web"> DirectoryIndex app_dev.php Options -Indexes FollowSymLinks SymLinksifOwnerMatch AllowOverride None RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app_dev.php [QSA,L] </Directory> </VirtualHost> # Symfony 2 : monapp.prod <VirtualHost *:80> ServerName monapp.prod DocumentRoot /data/www/MonApp/web/ <Directory "/data/www/MonApp/web"> DirectoryIndex app.php Options -Indexes FollowSymLinks SymLinksifOwnerMatch AllowOverride All Allow from All </Directory> </VirtualHost>
两个文件+( @Bendihossan和@Emma )的组合在这里工作…
<VirtualHost *:80> ServerName symfony2-7-9.dev DocumentRoot /var/www/symfony2-7-9/web/ DirectoryIndex app.php ErrorLog ${APACHE_LOG_DIR}/symfony2-7-9-error.log CustomLog ${APACHE_LOG_DIR}/symfony2-7-9-custom.log combined <Directory "/var/www/symfony2-7-9/web/"> Options -Indexes FollowSymLinks SymLinksifOwnerMatch AllowOverride None RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app_dev.php [QSA,L] </Directory> </VirtualHost>
设置虚拟主机后,将下面的代码放到web / .htaccess文件中
<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On #<IfModule mod_vhost_alias.c> # RewriteBase / #</IfModule> RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app_dev.php [QSA,L] </IfModule>