0

私のプロジェクト フォルダーはデモで、その中にアプリケーション、ライブラリー、パブリックのフォルダーがあります。私の index.php は public フォルダーにあります。そこで、ブラウザで localhost/demo/public を指定します。アプリケーション フォルダー内にコントローラー フォルダーがあり、その中に IndexController があります。このインデックス コントローラーでは、私の indexAction メソッドは次のとおりです。

   $this->_redirect('/auth/login');
   $this->_helper->layout->disableLayout();
   $this->_helper->viewRenderer->setNoRender(true);

したがって、このメソッドでは、同じコントローラー ディレクトリにある AuthController にリダイレクトし、そのアクション ログインにリダイレクトします。しかし、ブラウザはレンダリングします:

要求された URL /demo/public/auth/login がこのサーバーで見つかりませんでした。

AuthController は public フォルダーではなくコントローラーにあります。_redirect 呼び出しで URL 文字列を正しくフォーマットするにはどうすればよいですか?

4

2 に答える 2

0

リダイレクター アクション ヘルパーを使用する

$this->_helper->redirector('auth','login');
于 2013-05-30T18:44:34.177 に答える
0

たとえば、次のように、url ビュー ヘルパーを使用してみてください。

$this->_redirect($this->view->url(array('controller'=>'auth','action'=>'login');

別のオプションは、次のように URL を絶対的にフォーマットしようとすることです。

$this->_redirect($_SERVER['HTTP_ROOT'].'/auth/login')

最初のオプションはより安全なはずですが。

于 2013-06-04T11:17:06.547 に答える