PHP5 / Zend Framework1.8.1のWebサイトがあります。次の場所にあります。
http://www.example.com/foo
腹立たしいことに、グーグルのインデックスによってまだ維持されているこのサイトの古いバージョンは、次の場所にありました。
http://www.example.com/foo/DEFAULT.ASP
そのため、多くの人が上記のリンクを要求し、行き止まりになっています。
これを修正する方法は、301リダイレクトを発行して、彼を新しいサイトに誘導することだと思います。頭に浮かぶこれを行う2つの方法は次のとおりです。
私が最初に考えた方法は、.htaccessに書き換えルールを追加することでした。私たちのサイトの実装はPHP5/Zend Framework 1.8.1であるため、.htaccessには(Zend Framework MVC要件に従って)既存の書き換えルールがあります。
RewriteRule !\.(js|ico|gif|jpg|png|css|jpeg)$ index.php
mod_rewrite noobとして、私は少しグーグルして、リダイレクトを処理するために次のことを思いつきました。
RewriteCond %{HTTP_HOST} ^/foo/DEFAULT.ASP RewriteRule (.*) http://example.com/foo$1 [R=301,L]
これらの行を.htaccessに追加しましたが、機能しません。
私が考えた2番目の方法は
Zend_Router_Route_Static
、次のように使用することです。$router = $frontController->getRouter(); $route = new Zend_Controller_Router_Route_Static('foo/DEFAULT.ASP', array('controller' => 'foo', 'action' => 'index')); $router->addRoute('foo', $route);
これは正しいページにリダイレクトされますが、301ヘッダーを設定する方法もわかりません。さらに、これらのコード行を自分のコードに含めるのは非常にエレガントではありません。
bootstrap.php
誰かがこの状況に対処する方法について何かアドバイスを提供できますか?私はすべてまたはいずれかを知りたいです:
- 書き換えルールを機能させる方法
Zend_Controller_Router_Route
可能であれば「301」を使用する方法 。- 私が行方不明になっている別の方法はありますか?
- どちらがより良い方法であり、その理由は何ですか?
- なぜグーグルはこれを理解しないのですか?半年近く経ちました。