ciao a tutti sto cercando di capire come funzionano gli url, e le vorrei fare più friendly.
Sto seguendo il libro cookbook, ma non sono riuscito a fare quello che dice.
In pratica ho creato un controller con questo script
<?php
class WebsiteController extends CController {
public function actionIndex() {
echo "index";
}
public function actionPage($alias) {
echo "Page is $alias.";
}
}
?>
dopo di che nel main ho scritto:
'urlManager' => array(
'urlFormat' => 'path',
'rules' => array(
// '<controller:\w+>/<id:\d+>'=>'<controller>/view',
// '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
// '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'home' => 'website/index',
'<alias:about>' => 'website/page',
'page/<alias>' => 'website/page',
),
),
e nell .htaccess ho scritto
Options +FollowSymLinks
allow from all
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
il mod_rewrite sul mio server è attivato, ho scritto sia in httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
sia nel default di apache ( che credo bastasse anche solo questo il mio server è Ubuntu Ocelot 11.10)
<Directory /var/www/yiiTest>
Options Indexes FollowSymLinks MultiViews
#QUESTO MI DICE SE VERRA UTILIZZATO HTACCESS
AllowOverride All
Order allow,deny
allow from all
</Directory>
quando poi riavvio il server ricevo:
[warn] module rewrite_module is already loaded, skipping
quindi il mod_rewrite dovrebbe essere apposto
solamente che se appunto accedo direttamente a /home o a /about la pagina non viene trovata
Grazie