代码之家  ›  专栏  ›  技术社区  ›  doremi

别名域到Zend目录

  •  0
  • doremi  · 技术社区  · 14 年前

    我有一个ZF的网站在domainA.com 我想告诉你domainB.com 例如:domainA.com/photos/album 所以这张专辑将是domainB的根。

    如何做到这一点?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Tim Stone    14 年前

    mod_rewrite .htaccess 根目录应该工作:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{HTTP_HOST}    =domainB.com [NC]
    RewriteCond %{REQUEST_URI} !^/photos/album
    RewriteRule .* /photos/album/$0 [L]
    

    /photos/album/ domainB.com . 如果我没记错的话,Zend Framework对控制器/操作是否以斜杠终止并不挑剔,所以这应该没问题。如果需要的话 /photos/album 出于某种原因,我也有一个解决办法,但如果不需要,那就太过分了。

    index.php ,Zend Framework执行其路由。但是,Zend框架执行路由的默认方式是使用 REQUEST_URI ,而不是我们重写的请求)。实际上我们需要 REDIRECT_URL ,这是由我们的新 RewriteRule .

    controller request documentation 描述了这个场景(有点),并解释了您可以使用 Zend_Controller_Request_Apache404 作为drop-in请求对象以获取正确的路由信息:

    $request = new Zend_Controller_Request_Apache404();
    $front->setRequest($request);
    

    我很确定您也可以只获取当前的请求对象,然后调用

    $request->setRequestUri($_SERVER['REDIRECT_URL']);