我想使用此URL访问Yii中的url www.example.com/detail/post
。在Yii中重写URL
我应该能够处理这个网址要么行动detail
与具有价值post
参数或一些行动有一个命名参数detail
和值post
。
我阅读了关于createUrl
的Yii文档,但无法理解。
我想使用此URL访问Yii中的url www.example.com/detail/post
。在Yii中重写URL
我应该能够处理这个网址要么行动detail
与具有价值post
参数或一些行动有一个命名参数detail
和值post
。
我阅读了关于createUrl
的Yii文档,但无法理解。
我想这就是你要找的内容是:
更新main.php以下(在部分转换控制,说控制器/细节,无论你的控制器的名字)
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
'rules' => array(
'detail/<post:\d+>'=>'controller/detail',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
),
所以基本上你要告诉Yii格式细节/数字中的任何请求都会传递给你的控制器,并使用“细节”动作,然后传递一个名为“post”的变量。
如果已经启用国防部重写,并要放置在你的htaccess文件
php_value upload_max_filesize 1M
DirectoryIndex index.php
Options +FollowSymlinks
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
以下,并添加以下到“urlManager”阵列在你的配置/ main.php文件:
'showScriptName'=>false,
将从您的网址中删除index.php,并确保只以domain.com/controller/action的形式显示网址
谢谢你的回答,它帮了我很多。 – Arif 2012-04-17 19:11:38