首頁 > Zend Framework > [PHP-ZF] 解決 ZF 在 Proxy 模式下無法正確解析 Controller Name 的問題

[PHP-ZF] 解決 ZF 在 Proxy 模式下無法正確解析 Controller Name 的問題

2008年6月23日 jaceju 發表評論 閱讀評論

說明

因為要和客戶的內部網路連線,便透過 PieTTY 的 SSH Tunnels 模式來做 Proxy 。但是這個方式卻讓 Zend Framework 出現了以下的錯誤訊息:

An error occurred with this request: Invalid controller specified (http:).

解決方式是修改 Zend Framework 的 Zend_Controller_Request_Http 這個類別。

先開啟 Zend/Controller/Request/Http.php ,並找到:

$requestUri = $_SERVER['REQUEST_URI'];

改為:

$requestUri = preg_replace(
    '/^https?:\/\/' . $_SERVER['HTTP_HOST'] . '/i',
    '',
    $_SERVER['REQUEST_URI']
);

這樣就能避掉 Proxy 所帶來的問題了。

註 1 :這個方法的風險在於會修改原生的 ZF 程式碼,如果會用到 Subversion 來管理程式碼的話,要特別注意未來更新版本時可能會發生衝突的問題。

註 2 :未來版本應該會修正這個問題。

參考

ZF MVC is not compatible with apache + http protocol proxy requests

Categories: Zend Framework Tags:
  1. 目前尚無任何的評論。

Spam Protection by WP-SpamFree