如何使用Apache路由器吗

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.0,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

如何使用Apache路由器吗

ob娱乐下载Symfony2,开箱即用的快,还提供了各种方法来增加,速度一点调整。其中一个方法是通过让apache处理直接路线,而不是使用Symfony2这个任务。ob娱乐下载

改变路由器的配置参数

将Apache路线必须首先调整告诉Symfony2使用一些配置参数ob娱乐下载ApacheUrlMatcher而不是默认的一个:

  • YAML
  • XML
  • PHP
1 2 3 4
# app / config / config_prod.yml参数:router.options.matcher.cache_class:~#禁用路由器缓存router.options.matcher_class:ob娱乐下载Symfony \组件\ \匹配器\ ApacheUrlMatcher路由

提示

请注意,ApacheUrlMatcher扩展UrlMatcher所以即使你不再生url_rewrite规则,一切都将结束时(因为工作ApacheUrlMatcher::匹配()调用父::匹配()完成)。

生成mod_rewrite规则

测试的工作,让我们创建一个非常基本的演示包的路线:

  • YAML
  • XML
  • PHP
1 2 3 4
# app / config / routing.yml你好:模式:/ hello /{名称}默认值:{_controller:AcmeDemoBundle:演示:你好}

现在生成url_rewrite规则:

1
php应用程序/控制台路由器:美元dump-apache - e =刺激——没有调试

输出应该大致如下:

1 2 3 4 5 6 7
#跳过“真实”的请求RewriteCond% {REQUEST_FILENAME}- fRewriteRule* -(QSA L)#你好RewriteCond% {REQUEST_URI}^ / hello /([^ /] + ?)美元RewriteRule. * app.php[QSA L E = _ROUTING__route:你好,E = _ROUTING_name: % 1, E = _ROUTING__controller: AcmeDemoBundle \:演示\:你好)

现在,您可以重写的web /。htaccess的使用新规则,所以这个例子应该是这个样子:

1 2 3 4 5 6 7 8 9 10 11
< IfModule mod_rewrite.c >RewriteEngine#跳过“真实”的请求RewriteCond% {REQUEST_FILENAME}- fRewriteRule* -(QSA L)#你好RewriteCond% {REQUEST_URI}^ / hello /([^ /] + ?)美元RewriteRule. * app.php[QSA L E = _ROUTING__route:你好,E = _ROUTING_name: % 1, E = _ROUTING__controller: AcmeDemoBundle \:演示\:你好)< / IfModule >

请注意

程序上面应该每次添加/更改路线,如果你想充分利用这个设置

就是这样!你现在将使用Apache路由规则。

额外的调整

为了节省一点处理时间,出现的变化请求ApacheRequestweb / app.php:

1 2 3 4 5 6 7 8 9 10 11 12
/ /网络/ app.phprequire_once__DIR__“/ . . / app / bootstrap.php.cache”;require_once__DIR__“/ . . / app / AppKernel.php”;/ / require_once __DIR__。“/ . . / app / AppCache.php”;使用ob娱乐下载\组件\HttpFoundation\ApacheRequest;美元内核=AppKernel (“刺激”,);美元内核- >loadClassCache ();/ /内核= new AppCache美元($内核);美元内核- >处理(ApacheRequest::createFromGlobals ())- >send ();
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。