Seb*_*sza 2 php symfony symfony-2.1 symfony-2.0
在子目录或别名中部署symfony2应用程序的最佳方法是什么?
让我们说我的应用程序将在以下运行: http://domain/symfonytest
symfonytest是我的文件系统中某个目录的别名.
我可以使用一些CLI操作吗?
当我尝试手动配置时,我发现路由有问题.
路由器将http://domain/symfonytest/demo其视为重新发送/symfonytest/demo
有没有办法告诉路由器忽略/symfonytest整个应用程序的前缀?
mez*_*eze 10
如果您使用Symfony <2.3,您可以遵循以下方法:
只需添加RewriteBase.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /symfonytest
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
如果您的项目位于不同的目录中,我将通过重写规则将所有流量设置为一个文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)
然后我会通过注释将路由前缀设置到我的控制器:
# Index (main page)
_nameRouteIndex:
resource: "@MyBundle/Controller/IndexController.php"
type: annotation
prefix: /symfonytest
Run Code Online (Sandbox Code Playgroud)
在那之后你把控制器放在这样的东西(路径将是domain/symfonytest):
/**
* Home page
*
* @return Response
*
* @Route("/", name="_index")
*/
public function indexAction()
{
}
Run Code Online (Sandbox Code Playgroud)
路径:domain/symfonytest/demo
/**
* Demo page
*
* @return Response
*
* @Route("/demo", name="_demo")
*/
public function demoAction()
{
}
Run Code Online (Sandbox Code Playgroud)
Hoep有帮助
| 归档时间: |
|
| 查看次数: |
8452 次 |
| 最近记录: |