在子目录或别名中部署 symfony2 应用程序的最佳方法是什么?
假设我的应用程序将在以下条件下运行:http://domain/symfonytest
symfonytest 是我文件系统中某个目录的别名。
是否有一些我可以使用的 CLI 操作?
当我尝试手动配置它时,我发现路由有问题。
请求http://domain/symfonytest/demo
被路由器视为/symfonytest/demo
有没有办法告诉路由器忽略/symfonytest
整个应用程序的前缀?
在子目录或别名中部署 symfony2 应用程序的最佳方法是什么?
假设我的应用程序将在以下条件下运行:http://domain/symfonytest
symfonytest 是我文件系统中某个目录的别名。
是否有一些我可以使用的 CLI 操作?
当我尝试手动配置它时,我发现路由有问题。
请求http://domain/symfonytest/demo
被路由器视为/symfonytest/demo
有没有办法告诉路由器忽略/symfonytest
整个应用程序的前缀?
如果您使用的是 Symfony < 2.3,您可以遵循以下方法:
只需添加RewriteBase
您的 .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /symfonytest
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
如果您的项目位于不同的目录中,我将通过重写规则将所有流量设置为进入一个文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
然后我会通过注释为我的控制器设置路由前缀:
# Index (main page)
_nameRouteIndex:
resource: "@MyBundle/Controller/IndexController.php"
type: annotation
prefix: /symfonytest
之后你在你的控制器中放入类似这样的东西(路径是域/symfonytest):
/**
* Home page
*
* @return Response
*
* @Route("/", name="_index")
*/
public function indexAction()
{
}
路径:域/symfonytest/demo
/**
* Demo page
*
* @return Response
*
* @Route("/demo", name="_demo")
*/
public function demoAction()
{
}
希望有帮助
对于 symfony3,它使用 apache 配置中的别名:
Alias /myapp /home/httpd/myapp/web