Symfony:我不能使用以“web”字符串开头的路由名称

时间:2013-10-28 11:43:33

标签: php symfony web routing

我使用路线名称作为“网站管理员”(www.domain.com/webmaster),symfony向我显示如下错误:

  

NotFoundHttpException:找不到“GET master”的路由

我的htacces是:

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

我知道,“web”是Symfony2应用程序中的保留关键字。我如何在我的项目中使用此异常。

感谢。

2 个答案:

答案 0 :(得分:3)

Symfony的web目录应该是您网站的文档根目录,因此,不需要将其作为重写规则的基础包含在路径中。

因此,假设您的.htaccess文件位于PROJECT_ROOT/web/.htaccess,则应该要求的是

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

同样,这假设您已将Apache设置为指向PROJECT_ROOT/web作为网站的文档根目录(其中PROJECT_ROOT类似于/var/www/vhosts/symfony_project

答案 1 :(得分:0)

对你的评论作出反应

  

我没有静态路线作为“网站管理员”。它是在控制器中动态生成的。例如:path:/ {category}

我猜您需要为路线添加前缀。 例如,symfony如何知道www.myapp.com/admin是否是您的动态路线或标准路线之一? 您需要至少包含/site/{category}

之类的前缀