2011-03-11 173 views
0

我有兩個問題。 首先,我需要在我的網站進行推薦。在PHP中,它看起來像這樣:www.mysite.com/join?ref=100然後在頁面上你會$_get(ref); Zend不喜歡這個,所以我該如何實現這一點。Zend Framework問題

第二個問題是我怎樣才能在我的網站上的子域與框架。我想在我的網站上放置一個論壇,並嘗試了一個子域並加載它,但它不起作用,因爲Zend推動index.php中的所有內容。那麼如何讓它在同一個網站上存在?我不能將它放在模塊中,因爲它本身就是一個網站。使用其他域名時,我被卡住了。

感謝您的幫助。

+0

如果您想使用子域名,您可能需要使用虛擬主機。 –

+3

Zend喜歡它;)不要讓任何人告訴你不同;) –

回答

2

獲取GET參數(如www.mysite.com/join?ref=100)應正常工作。假設join是你的控制器和index是在控制你的行動,paratmeter ref可以通過以下方式獲取:

var_dump($_GET['ref']); 
    // or 
    var_dump($this->getRequest()->getParam('ref')); 

所以我沒有看到一個原因ZF會不喜歡它。

不幸的是,我不能幫你解決第二個問題,因爲我不知道。

1

你應該在.htaccess

這裏編輯mod_rewrite的規則,是我的規則:

RewriteEngine on 

#do not rewrite for existing files and content of css, js, skin, forum subfolders 
RewriteCond %{REQUEST_URI} ^/(css|js|skin|forum)/ [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*) - [L] 


RewriteRule ^(.*)$ index.php [L] 
2

您關注的子域的第二個問題,似乎有三個問題:

  1. 網絡 - 級別路由
  2. 應用級路由
  3. 模塊結構

在網絡級別,您可以配置您的宿主環境,以便所有子域指向宿主環境中的單個文件夾。然後在那裏部署爲標準ZF安裝,包括標準.htaccess

在應用程序級別,您的單個ZF安裝將接收所有子域的請求。然後,您可以使用ZF的應用程序路由機制來處理這些請求。特別是,您可以配置各種Zend_Controller_Router_Route_Hostname路由來處理您選擇的控制器/操作的請求。

最後一點是哪些控制器和操作?這聽起來像是一個好主意,爲每個子域創建一個單獨的模塊。因此,上面的主機名路由可以檢測到子域,並使用適當的模塊(和控制器/操作)處理請求。