У меня есть веб-сайт PHP5 / Zend Framework 1.8.1, который расположен по адресу:
http://www.example.com/foo
Старая версия этого сайта, которая, к сожалению, все еще поддерживается индексом Google, была расположена по адресу:
http://www.example.com/foo/DEFAULT.ASP
Так что многие люди запрашивают вышеуказанную ссылку и заходят в тупик.
Я полагаю, что исправить это можно было бы путем перенаправления 301, чтобы перевести его на новый сайт. На ум приходят два способа сделать это:
Первый способ, о котором я подумал, - это добавить правило перезаписи в наш .htaccess. Наша реализация сайта - PHP5 / Zend Framework 1.8.1, поэтому в .htaccess существует существующее правило перезаписи (согласно требованию Zend Framework MVC), которое:
RewriteRule !\.(js|ico|gif|jpg|png|css|jpeg)$ index.php
Как noob mod_rewrite, я немного погуглил и придумал следующее для обработки перенаправления:
RewriteCond %{HTTP_HOST} ^/foo/DEFAULT.ASP
RewriteRule (.*) http://example.com/foo$1 [R=301,L]
Я добавил эти строки в .htaccess, но они не работают.
Второй способ, о котором я подумал, - это использовать 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
Может кто-нибудь дать совет, как справиться с этой ситуацией? Я хотел бы знать все или любой из:
- Как заставить работать правило перезаписи
- Как сделать «301» с
Zend_Controller_Router_Route
если
возможно.
- Есть ли другой способ, которым я
отсутствует
- Какой путь лучше и почему?
- Почему бы Google не понять это?
Прошло почти полгода.