zend网站也需要别名

时间:2011-01-24 10:55:50

标签: php apache zend-framework .htaccess mod-rewrite

我有一个zend站点,其中DocRoot设置为public /,URL为 (http://dothat.com/controllerA/action9/) - 工作正常。

我还需要在同一台服务器上运行该站点的副本 (http://dothat.com/now/controllerA/action9/)在同一个文件夹上运行。

(给出的网址是示例)

请建议如何在不破坏zend设置的情况下完成此操作。

3 个答案:

答案 0 :(得分:2)

我个人只是在你的Bootstrap中做一个简单的Zend路由。

示例:

protected function _initRoutes()
{   
    $this->bootstrap('frontController');

    $frontController = Zend_Controller_Front::getInstance();

    $nowRoute = new Zend_Controller_Router_Route("now/:controller/:action");

    $frontController->getRouter()->addRoute("now", $nowRoute);
}

Zend中的路由非常强大且设置有趣。我实际上有一个外部.ini文件,以便更容易设置,甚至环境感知。

答案 1 :(得分:2)

它为我工作

/etc/httpd/conf.d/zendproject.conf

Alias /zendproject/ /var/www/vhosts/zendproject/public/

<Directory "/var/www/vhosts/zendproject/public/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from All
</Directory>

公共/ htaccess的

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /zendproject/index.php [NC,L]

答案 2 :(得分:0)

这个想法怎么样:

Apache中的别名(如果它是您正在使用的http服务器)

Alias /now /path/to/zend/public   
<Directory /path/to/zend/public>      
  SetEnv APPLICATION_ENV development
  ...
</Directory>

你也必须关心.htacces

...
RewriteRule ^.*$ /now/index.php [NC,L] 

E.g。与重写规则中的路径的另一个环境变量..