You are here

服务一个请求

老葛的Drupal培训班 http://www.thinkindrupal.com

Drupal收到一个请求时都发生了什么呢?如果对此能有一个概括性的了解,那么对以后的学习将会很有帮助,所以本部分将对这一框架提供一个简要的介绍。如果你自己也想追踪一下的话,使用一个好的调试器,从index.php开始就可以了,Drupal的大多数请求都从这里开始。对于一个简单web页面,这里所列的序列看起来有些复杂,但这也是灵活性所必需的。
Web服务器的角色
     Drupal运行在web服务器上,通常是Apache上。如果web服务器识别Drupal的.htaccess文件,那么将初始化一些PHP设置,并启用简洁URL。基本上对Drupal的所有调用都是从index.php开始的。例如,调用http://example.com/foo/bar,将会经历以下步骤:
1.首先,基于Drupal的.htaccess文件中的mod_rewrite规则,对输入URL进行检查,并将基路径从路径中分离出去。在我们的例子中,路经就为foo/bar。
2.将这个路径指定给URL查询参数q。
4.Drupal把foo/bar作为Drupal内部路径,并在index.php中开始进行处理。
 
    这一流程的结果就是,Drupal对http://example.com/foo/barhttp://example.com/index.php?q=foo/bar的处理方式是一样的,因为对于Drupal来说,这两者的内部路径是一样的。这就使得Drupal可以使用不带“?q=”的URL了。这些URL被称为简洁URL。
 
    在备选的web服务器中,比如微软的IIS,可以使用一个ISAPI模块比如ISAPI_Rewrite来实现简洁URL。IIS 7及以后的版本可能会内置对重写的支持。

Drupal版本: