Php zend站点也需要别名
我有一个zend站点,其中DocRoot设置为public/和URL作为 (http://dothat.com/controllerA/action9/)-工作正常 我还需要在同一台服务器上运行该站点的副本 (http://dothat.com/now/controllerA/action9/)在同一文件夹上运行 (给出的URL是示例) 请建议如何在不破坏zend设置本身的情况下完成此操作。这个想法如何: Apache中的别名(如果您使用的是http服务器)Php zend站点也需要别名,php,apache,zend-framework,.htaccess,mod-rewrite,Php,Apache,Zend Framework,.htaccess,Mod Rewrite,我有一个zend站点,其中DocRoot设置为public/和URL作为 (http://dothat.com/controllerA/action9/)-工作正常 我还需要在同一台服务器上运行该站点的副本 (http://dothat.com/now/controllerA/action9/)在同一文件夹上运行 (给出的URL是示例) 请建议如何在不破坏zend设置本身的情况下完成此操作。这个想法如何: Apache中的别名(如果您使用的是http服务器) 例如,对于重写规则中的路径,使用另一
例如,对于重写规则中的路径,使用另一个环境变量..我个人只需在引导中执行一个简单的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中的路线设置非常强大和有趣。实际上,我在一个outside.ini文件中保存了我的文件,这样可以更容易地进行设置,甚至可以感知环境。这对我很有用
/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>
当我使用Alias时,它是我无法正确获取的重写规则/条件。规则应该尊重现有站点(/)和新站点(/现在)。就像我说的,你可以使用另一台服务器。。现在使用SetEnv PATH/和SetEnv PATH/并在htaccess中使用该环境,例如。
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);
}
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>
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]