我使用了一个路由名称作为"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}