2012-02-06 61 views
1

我有一個問題得到zend框架與我的服務器上的子域很好地玩。我有一個在Ubuntu 11.10上運行的LAMP棧,我也使用了一個動態DNS服務,我已經定義了我的區域記錄。所以基本上我的DNS設置是這樣的:Zend Framework與子域名

DNS: 註冊一個公司,並在此點我的域名到動態DNS的域名服務器。

與動態DNS主機我有A型的3個規定的區域內記錄:

mydomain.com 000.00.0.0 
www.mydomain.com 000.00.0.0 
*.mydomain.com 000.00.0.0 <-- wildcard to catch all subdomains 

的Apache設置

/etc/apache2/sites-available

我有我的默認設置爲:: /啓用的站點 - mydomain和另一個虛擬主機爲mysubdomain.mydomain.com

/var/www: 我mydomain.com/pub LIC /無功/網絡/公共文件夾作爲它的根目錄

/var/www/mysubdomain:我一直在使用/var/www/mysubdomain/public文件夾作爲其根mysubdomain.mydomain.com

我想這一切是否設置正確,因爲我正確地起到www.mydomain.com任何請求,我也正確地爲www.mysubdomain.mydomain.com提供任何請求。

但是當我做出這樣www.mysubdomain.mydomain.com/:controllerwww.mysubdomain.mydomain.com/:controller/:action我發了404從服務器中未發現有以下消息的請求:

The requested URL /controller/action was not found on this server.

林認爲這是我的.htaccess的問題,這是設置在

我的.htaccess方式如下:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* index.php 

問題是,當我目前正在嘗試訪問的應用程序設置和訪問像一個正常的域名,如www.mysubdomain.com一切正常。

回答

1

我使用下面的.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] 

也許你可以嘗試,並提供結果。

+0

得到一個500內部服務器錯誤與.htaccess這很奇怪,因爲如果我沒有記錯的話,那是默認推薦的.htaccess for zf – John 2012-02-06 15:48:34

+0

你可以放置一個test.php,只需<?php phpinfo(); ?>在/ public文件夾中,看看你是否可以訪問它?或者你還得到了那個500的? – Goeran 2012-02-06 15:55:41

+0

您是否在httpd.conf中爲您的虛擬主機設置了'AllowOverride FileInfo'?這是爲啓用重寫引擎提供.htaccess文件權限所必需的。 – Goeran 2012-02-06 16:02:25