如何从index
http://localhost/dashboard/index/create
我的urlManager
设置如下:
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
),
这为我提供了像http://localhost/dashboard
这样的干净网址,其中dashboard
是一个名为indexController
的默认控制器的模块。
现在,我遇到的问题是,如果没有先放index
,我就无法访问模块控制器的其他操作。例如,如果我想在actionCreate
内调用indexController
,我总是有说http://localhost/dashboard/index/create
。
有什么方法可以摆脱index
,只需这样称呼它:http://localhost/dashboard/create
?
这是我在main.php
:
'modules' => array(
...
'dashboard' => array(
'defaultController' => 'index'
),
...
),
提前谢谢: - )
答案 0 :(得分:3)
尝试像这样安排你的数组(把你的urlManager组件下的仪表板开头的行):
array(
...
'components' => array(
...
'urlManager' => array(
...
'rules' => array(
'dashboard/<action:\w+>' => 'dashboard/index/<action>'
),
),
),
);
答案 1 :(得分:0)
您可以为此创建.htaccess file
:
RewriteEngine on
RewriteBase /project_folder_NAME
# 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