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


Symfony: I cannot use a route name starting with "web" string

我使用了一个路由名称作为"webmaster"(www.domain.com/webmaster),symfony向我显示了一个错误,如下所示:

NotFoundHttpException:找不到"GET master"的路由

我的观点是:

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

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

谢谢。

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

对您的评论做出反应

我没有作为"网站管理员"的静态路由。它是在控制器中动态生成的。例如:路径:/{类别}

我想您需要为您的路线添加前缀。例如,symfony如何知道www.myapp.com/admin路由是动态路由还是标准路由?您至少需要一个前缀,例如 /site/{category}