我有/var/www/html/zend_example
下安裝了默認的Zend Framework應用程序。公共目錄是:/var/www/html/zend_example/public
。配置Zend Framework忽略其他目錄並在子目錄中工作?
我也有/var/www/html
其他非Zend的部位。例如,/var/www/html/other_site
。
如何配置ZF站點在http://MYDOMAIN/zend_example
下工作,同時允許http://MYDOMAIN/other_site
工作?
這裏是我的Apache的配置文件:
<VirtualHost *:80>
DocumentRoot /var/www/html/zend_example/public
SetEnv APPLICATION_ENV "development"
<Directory /var/www/html/zend_example/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
這裏是.htaccess
文件中/var/www/html/zend_example/public
:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
我只是想獲得一個發展ZF網站建立和運行,同時還具有其他的可用的網站(在相同的基本URL下)。
眼下,所有的請求重定向(或重寫?)到基URL(HTTP:// MYDOMAIN)。
謝謝!
編輯#1
我編輯的虛擬主機兩個zend_example
和other_site
使每個DocumentRoot
設置爲/var/www/html
,而不是子目錄爲每個站點。這使得它可以訪問這兩個網站在各自的網址 - OTHER_SITE:http://MYDOMAIN/other_site
和zend_example:http://MYDOMAIN/zend_example/public
。現在,我認爲/var/www/html/zend_example/public
目錄中的.htaccess
文件存在問題。我無法訪問應該指向IndexController的默認「Zend」URL,如http://MYDOMAIN/zend_example/public/index/index
。相反,我收到一個404
錯誤。
編輯#2
如果我禁用除了zend_example
一個所有虛擬主機和zend_example虛擬主機有DocumentRoot /var/www/html
集,然後我能夠http://MYDOMAIN/zend_example/public
下運行的Zend的網站,其中包括特定的默認Zend的路線,如http://MYDOMAIN/zend_example/public/index/index
。當我啓用另一個虛擬主機時,這會中斷,但我仍然可以訪問Zend的主索引頁面http://MYDOMAIN/zend_example/public
。
編輯#3
我結束了這個醞釀了好幾個小時。似乎有一些獨特的配置需要完成,因爲我的服務器是centos 6.0。我最終設置了Debian 6.0服務器,並能夠正確地設置我的虛擬主機,包括Zend站點!不過,我仍然想回來解決centos問題。
該設置看起來對我來說很合適。它不工作?我唯一要補充的是,如果你還沒有成爲其他站點的VHost – vascowhite 2012-04-21 07:26:40
@vascowhite Zend站點正在工作,除了它只能在'http:// MYDOMAIN /'而不是'http: // MYDOMAIN/zend_example'。它還可以防止訪問諸如「http:// MYDOMAN/other_site /」之類的URL(它只是通過Zend應用程序錯誤)。 – 2012-04-21 20:28:20
如果這適用於Debian而不是Centos,則問題可能在於某些文件或目錄的所有權/權限。我在嘗試設置Ubuntu時遇到過這個問題。 – RockyFord 2012-04-22 06:28:12