mod_rewriteのRewriteRulesを使用して、Apacheにいくつかの基本的なリダイレクトがあります。Zend Frameworkを使用して、これらのリダイレクトをプログラムで実行したいと思います。これらのリダイレクトには、異なるドメインが含まれる場合があります。例えば
RewriteRule ^/xmas(.*) http://mycdn.com/things/xmas$1 [P]
Apacheでリダイレクトする場合、URLは同じままです。たとえば、ブラウザのアドレスバーにあります。ZFでこの動作を模倣したいのですが、他のドメインへの道を見つけることができません。
Zend_Controller_Router_Route
拡張、match()
メソッドの拡張、モジュール、コントローラー、アクションなどのフィールドを含む配列を返すことで、サイト内リダイレクトを行うことができます。
class My_Route extends Zend_Controller_Router_Route
{
// ...
public function match($path)
{
// ...
return
array(
'module' => 'default',
'controller' => 'mycontroller',
'action' => 'index',
);
}
}
しかし、他のドメインへのリダイレクトで機能させることはできませんでした。これは、明らかにインサイトルートでのみ機能するためです(仕様でドメインまたは完全なURLを指定する方法も見つかりませんでした)。
私は次のような別の方法を試しました:
$r = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
$r->gotoUrl("http://otherdomain.com/some-stuff-to-redirect-to")->redirect();
これはリダイレクトを行いますが、まったく新しいリクエストを行うページを完全に変更します。
これをZFに実装するにはどうすればよいですか?ZF1を使用します。