これを機能させる方法を順を追って説明します。
ステップ 1 - Yii ウェブアプリを作成する
コンソールで Yii フレームワーク パスに移動し、新しい webapp を作成します。私の場合、コンソールでこれを使用しました:
cd c:\zeus\yii-1.1.10.r3566\framework
yiic webapp c:\zeus\www\yiiblog
ここで、c:\zeus\yii-1.1.10.r3566\framework は Yii php フレームワークへのパスであり、c:\zeus\www\yiiblog は Yii webapp テスト フォルダーへのパスです。
ステップ 2 - 私のドメインを dev.yiiblog.com に偽装する
C:\Windows\System32\drivers\etc に移動し、次の行を追加して hosts ファイルを編集します。
127.0.0.1 dev.yiiblog.com
ステップ 3 - Apache httpd.conf ファイルを変更する
<VirtualHost *:80>
DocumentRoot "c:/zeus/www/yiiblog"
ServerName dev.yiiblog.com
ErrorLog "logs/dev.yiiblog.com-error.log"
CustomLog "logs/dev.yiiblog.com-access.log" common
</VirtualHost>
Apache サービスを再起動します。私は自分のWindowsコンソールで使用しました:
net stop apache
net start apache
私のApache 2サービスは、デフォルトのような「apache2.2」ではなく「apache」と名付けられています。
ステップ 4 - データベースを作成し、Yii へのデータベース接続を構成する
データベース yiitest とユーザー yiitest を作成しました。次に、ad /protected/config/main.php にある Yii 構成ファイルを開き、MySQL への接続を編集しました。
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=yiitest',
'emulatePrepare' => true,
'username' => 'yiitest',
'password' => 'password',
'charset' => 'utf8',
),
ステップ 5 - dburlmanager Yii 拡張機能をダウンロードする
Yii dburlmanager に移動し、Yii dburlmanager 拡張機能http://www.yiiframework.com/extension/dburlmanager/をダウンロードして、/protected/extensions フォルダーに展開します。
ステップ 6 - MySQL データベース テーブルを作成し、ダミー データを追加する
CREATE TABLE IF NOT EXISTS `articles` (
`seoURL` varchar(100) NOT NULL
) ENGINE=InnoDB;
INSERT INTO `articles` (`seoURL`) VALUES
('first-post'),
('another-post'),
('post/value'),
('website/page1');
CREATE TABLE IF NOT EXISTS `pages` (
`seoURL` varchar(100) NOT NULL
) ENGINE=InnoDB;
INSERT INTO `pages` (`seoURL`) VALUES
('page-first-post'),
('page-another-post'),
('page/post/value.html'),
('page-website/page1');
ステップ 7 - Yii カスタム コントローラを作成する
/protected/controllers フォルダーの下に、ArticleController.php と PageController.php という名前の 2 つの php ファイルを作成します。
ArticleController.php コンテンツ:
<?php
/**
* @filename ArticleController.php
*/
class ArticleController extends CController {
public function actionView() {
$this->render('view', array(
'article' => isset($_GET['article'])?$_GET['article']:'',
));
}
}
PageController.php コンテンツ:
<?php
/**
* @filename PageController.php
*/
class PageController extends CController {
public function actionView() {
$this->render('view', array(
'page' => isset($_GET['page'])?$_GET['page']:'',
));
}
}
ステップ 8 - カスタム Yii ビューを作成する
パス /protected/views/article/view.php および /protected/views/page/view.php を使用して、上記のコントローラーに対応するビュー ファイルを作成します。
記事の閲覧内容:
<h1>Article View Test</h1>
<br />
<?php
if (isset ($article)) echo "article: $article";
?>
ページ ビュー コンテンツ:
<h1>Page View Test</h1>
<br />
<?php
if (isset ($page)) echo "page: $page";
?>
ステップ 9 - カスタム Yii url ルールを追加する
main.php Yii 設定ファイルを再度開き、urlManager を次のように設定します。
'urlManager'=>array(
'urlFormat'=>'path',
'class'=>'ext.DbUrlManager.EDbUrlManager',
'connectionID'=>'db',
'rules'=>array(
'<article:[\w\/.-]+>'=>array(
'article/view',
'type'=>'db',
'fields'=>array(
'article'=>array(
'table'=>'articles',
'field'=>'seoURL'
),
),
),
'<page:[\w\/.-]+>'=>array(
'page/view',
'type'=>'db',
'fields'=>array(
'page'=>array(
'table'=>'pages',
'field'=>'seoURL'
),
),
),
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
'showScriptName'=>false,
),
ステップ 10 - .htaccess ファイルを作成する
Web アプリのルートの下に .htaccess ファイルを作成し、その内容を次のように etid します。
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
ステップ 11 - SEO フレンドリー URL をテストする
dev.yiiblog.com/first-post
dev.yiiblog.com/page-first-post
等
完全な URL 管理機能を使用して、素晴らしいブログやその他の Web アプリを作成して楽しんでください。