symfony2 app_dev.php route get 404但适用于app.php

时间:2016-05-11 12:19:51

标签: apache .htaccess symfony mod-rewrite

我的apache配置和我的几个symfony项目存在问题。

Debian版本:7.8 apache版本:2.2.22 with mpm_prefork

我的虚拟主机配置:

<VirtualHost *:80>
    DocumentRoot /var/www/test/web
    ServerName test.xxx.com
    <Directory /var/www/test/web>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

在我的测试项目中,.htaccess看起来像这样:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

重写模块已激活(我已通过.htaccess中的注释重写指令测试了id并调用了我的URL)。

当我打电话给prxx网址如test.xxx.com和test.xxx.com/something时,它可以正常工作。 但是当我调用app_dev.php url时,前控制器永远不会被执行。 例: 我打电话给test.xxx.com/something,apache错误日志说&#34;文件不存在&#34;我的symfony项目中没有dev.log中的任何日志。

我不明白为什么在我的开发环境中没有执行前控制器。

我的app_dev.php文件:

use Symfony\Component\HttpFoundation\Request;
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';

$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

1 个答案:

答案 0 :(得分:0)

请检查symfony 2.8 app_dev.php文件:

https://github.com/symfony/symfony-standard/blob/v2.8.6/web/app_dev.php

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:id="@+id/iconToggle" android:layout_gravity="center" android:src="@mipmap/ic_launcher" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="TITLE" android:id="@+id/textViewTitle" android:layout_gravity="center" android:lines="1" android:singleLine="true" /> 变为$loader = require_once __DIR__.'/../app/bootstrap.php.cache';

$loader = require __DIR__.'/../app/autoload.php';消失

另外,更改htaccess中的RewriteRule以重定向到app_dev.php而不是app.php