2012-03-07 43 views
0

我有一個zend框架應用程序,它似乎運行正常,我可以訪問我的應用程序在domain.com/controller/action IndexController。我現在做了一個新的控制器,我得到「頁面無法顯示」。Zend Framework的網址

我可以然而在這個地址domain.com/index.php/controller/action訪問我的新控制器

我已經檢查了所有常見的東西的AllowOverride是,重寫被啓用,htaccess文件是默認一個是在製作Zend示例項目時創建的。我覺得我錯過了一些基本的東西,如果有人能幫助它,將不勝感激!謝謝:)

回答

0

您需要設置路由來控制ZF如何將請求的URL路由(轉換)爲特定的控制器/操作。

看看到Zend框架路由文檔here

嘗試增加這樣的事情你的application.ini:

resources.router.routes.routename.route = 「/ myroute /」 resources.router.routes.routename.defaults.controller = myController的resources.router.routes.routename.defaults.action = myaction

編輯:重新閱讀您的問題後,您可能會遇到重寫問題:)您提到allowoverride已打開 - 配置中的確切線是什麼?

嘗試「AllowOverride FileInfo」或「AllowOverride All」,如果您的請求沒有通過您的index.php路由,完全可能是這種情況。

祝你好運!

+0

謝謝你,我閱讀這件事情。我認爲框架的一個功能是根據url自動將應用程序用戶引導到正確的控制器和操作,以及結構良好的文件嗎? – 2012-03-07 21:04:55

+0

我的行總是如下所示:「AllowOverride all」 – 2012-03-07 21:09:16

+0

O和「FileInfo」也不起作用。 – 2012-03-07 21:10:51

0

我想可能是symlinks

這裏有一個例子虛擬主機的作品

<VirtualHost *:80> 
    DocumentRoot "C:\www\zf2-tutorial\public" 
    ServerName zf2-tutorial.local 
    ErrorLog "C:\Zend\ZendServer\logs\zf2-tutorial.local.log" 
    SetEnv APPLICATION_ENV "development" 
    <directory "C:\www\zf2-tutorial"> 
    Options Indexes FollowSymlinks 
    AllowOverride all 
    Order Deny,Allow 
    Allow from all 
    </directory> 
</VirtualHost> 

我認爲你的問題可能是Options Indexes FollowSymlinks不存在。

您的網址應該與domain.com/module/controller/action一起使用,但它可能會顯示爲domain.com/index.php/module/controller/action。有幾種方法可以從顯示的網址中刪除index.php。我使用的方法是這一行添加到頂部的我index.php

$_SERVER["REQUEST_URI"] = str_replace('index.php','',$_SERVER["REQUEST_URI"]);