SEO対策 – Zend RouteでURLを短縮

By nakayama - 09/08/31 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

真意のほどは定かではありませんが一般的に階層が浅いページほど
検索エンジンで好評価を得られると言われています。
 
 
Zend Frameworkを使ってこのファイルにアクセスする場合、
ページのURLは下記のように5階層になり、あまりSEO的によくありません。

/{モジュール名}/{コントローラ名}/{アクション名}/パラメータ名/パラメータ値/
例:/user/shop/data/shopkey/12345/

モジュール名 user
コントローラー名 shop
アクション名 data
パラメータ 店舗キー(shopkey)

 
そこでZend Routeを使ってURLを短縮させてみます。

普通にFrontコントローラーを使った場合

require_once 'Zend/Controller/Front.php';

$front = Zend_Controller_Front::getInstance();
$front->setParam('noViewRenderer', true);
$front->setParam('useDefaultControllerAlways', true);

$front->dispatch();

Zend RouteでURLを短縮

require_once 'Zend/Controller/Front.php';
require_once 'Zend/Controller/Router/Rewrite.php';
require_once 'Zend/Controller/Router/Route.php';

$front = Zend_Controller_Front::getInstance();
$front->setParam('noViewRenderer', true);
$front->setParam('useDefaultControllerAlways', true);

$router = $front->getRouter();
$route = new Zend_Controller_Router_Route(
       'shop/:shop/',
       array(
            'shopkey'    => 'shopkey',
            ''module'    => 'user',
            'controller' => 'shop',
           'action'     => 'data'
      )
);
$router->addRoute('shop', $route);

$front->dispatch();

 
これで
/shop/12345/ で /user/shop/data/shopkey/12345/ と同じURLにアクセスした事になります。
 
参考URL:
masahilog – 『ZendFrameworkのディレクトリ構造とか』 
CodeZine – 『Zend Framework入門(4):PHPでMVCアプリケーションを構築しよう – Zend_Controller(中編)
Por toda a minha vida – 『Zend FrameworkでAmazon風のURLに対応させる方法