将Zend部署到子目录

时间:2010-09-17 16:59:05

标签: apache zend-framework

我刚开始学习Zend。我设法让我的本地Web服务器基本工作(使用zf create project)。我们只说我的项目名为 square

我唯一的.htaccess: square / public / .htaccess

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

的httpd.conf

DocumentRoot "/home/amree/web"

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all
</Directory>

<Directory "/home/amree/web">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>

NameVirtualHost square
<VirtualHost square>
    DocumentRoot "/home/amree/web/square/public"
    ServerName square
</VirtualHost>

主机

127.0.0.1               square

我在Linux上运行我的应用程序。

从我收集的内容中,我可以使用以下网址打开(加载而没有任何问题):

但我无法使用以下方式打开它:

我在同一个Web服务器中也有其他Web应用程序。例如,可以使用http://192.168.1.10/meh/打开 meh 应用程序,但无法使用http://square/meh

打开

我的问题是,如何在不向同一服务器中的其他应用程序出现问题的情况下加载Zend应用程序?目前,我更喜欢使用本地IP(192.168.1.10)访问它。应该可以从同一网络中的另一台计算机打开它。

所以,最后我应该能够使用

加载Zend项目
  1. http://192.168.1.10/square
  2. http://192.168.1.10/square/public
  3. http://192.168.1.10/square/public/default/index/index
  4. 我还可以使用http://192.168.1.10/meh

    打开我的其他 meh 应用程序

    提前致谢。

1 个答案:

答案 0 :(得分:1)

无法确实使用

访问您的应用程序
  • http://square/square/public
    • 使用square域将与您的vhost匹配,/square/public将被重写为Zend,后者将尝试运行Square_PublicController::indexAction()
  • http://192.168.1.10/square/(有目录列表)
    • 您有一个直接列表(由Options Indexes <Directory "/home/amree/web">允许),因为您的.htaccess位于http://192.168.1.10/square/public

你必须在:

之间做出选择

或者也许在Apache

中尝试Alias
Alias /square /square/public