Explicaré paso a paso cómo hacerlo funcionar.
Paso 1 - Crear una aplicación web Yii
Navegar hasta la ruta marco Yu en su consola y crear una nueva aplicación web. En mi caso he utilizado esto en mi consola:
cd c:\zeus\yii-1.1.10.r3566\framework
yiic webapp c:\zeus\www\yiiblog
donde c: \ Zeus \ yu-1.1.10.r3566 \ marco es mi camino a Yii framework PHP y C: \ Zeus \ www \ yiiblog es el camino a mi carpeta de prueba Yu webapp
Stept 2 - fingir mi dominio a dev.yiiblog.com
Ir a C: \ Windows \ System32 \ drivers \ etc y editar su archivo de hosts añadiendo esta línea:
127.0.0.1 dev.yiiblog.com
Paso 3 - alter ap Dolor archivo 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>
y reinicie el servicio apache. He utilizado en mi consola de ventanas:
net stop apache
net start apache
donde mi servicio de Apache 2 se denomina "Apache" no "apache2.2" como el que viene por defecto.
Paso 4 - Crear una base de datos y configurar una conexión de base de datos en Yii
He creado una base de datos y un yiitest yiitest usuario. Luego abrí mi archivo de configuración Yii ubicado ad/protected/config/main.php y editó la conexión a MySQL:
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=yiitest',
'emulatePrepare' => true,
'username' => 'yiitest',
'password' => 'password',
'charset' => 'utf8',
),
Paso 5 - descarga dburlmanager Yii extensión
Ir a Yii dburlmanager, descargar la extensión dburlmanager Yii http://www.yiiframework.com/extension/dburlmanager/ y extraer a su/protegidos/carpeta de extensiones
Paso 6 - Crear tablas de bases de datos MySQL y añadir datos ficticios
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');
Paso 7 - Crear su controlador personalizado Yii s
constituir bajo/protegidas controladores/carpeta dos archivos de PHP llamada ArticleController.php y PageController.php: contenido
ArticleController.php: contenido
<?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']:'',
));
}
}
Paso 8: cree sus vistas Yii personalizadas
Crea tus archivos de vista correspondientes a esos controladores anterior con la ruta de acceso y /protected/views/article/view.php /protected/views/page/view.php:
Artículo vista de contenido:
<h1>Article View Test</h1>
<br />
<?php
if (isset ($article)) echo "article: $article";
?>
Ver la página de contenido:
<h1>Page View Test</h1>
<br />
<?php
if (isset ($page)) echo "page: $page";
?>
Paso 9 - añadir reglas personalizadas url Yii
abierto de nuevo el archivo de main.php Yii config y establecer su urlManager a algo similar a:
'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,
),
Paso 10 - crear el archivo .htaccess
Crear un archivo .htaccess en virtud de la raíz de su aplicación web y su contenido a 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
Paso 11 - prueba su SEO Friendly URLs
dev.yiiblog.com/first-post
dev.yiiblog.com/page-first-post
etc
Diviértete creando blogs increíbles u otras aplicaciones web con total poder de administración de url.
las respuestas actuales parecen bastante útiles (especialmente de bellota), ¿cuál es la URL que le da 404? –