我开发了一个webapp,现在想用yii重写url,即时通讯使用yii。重写模式已启用并正在处理除yii之外的其他php项目。我当前的网址是/myhost/servers_cms/index.php?r=users/admin,但我想要/ myhost / servers_cms / users / admin。
这是我的main.php代码
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'caseSensitive'=>false,
),
RewriteEngine On
RewriteBase /servers_cms
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
答案 0 :(得分:0)
我将它用于我的.htaccess:
# 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'=>array(
'urlFormat'=>'path',
'showScriptName' => false,
'rules'=>array(
'test'=>'users/admin',
...
然后您应该可以转到* / myhost / servers_cms / test *并访问用户/ admin控制器/操作
答案 1 :(得分:0)
在main.php中添加以下内容
'urlManager' => array(
'class' => 'UrlManager',
'urlSuffix' => '/',
'urlFormat' => 'path',
'showScriptName' => true,
'caseSensitive'=>false,
'rules' => array(
'<controller:\w+>' => '<controller>/index',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
)
)
以下几行定义
'<controller:\w+>' => '<controller>/index',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
如果控制器名称为“user”,则它将重定向到“example.com/user/index”
如果控制器是“用户”且操作是“admin”,那么它将重定向到“example.com/user/admin”
'urlFormat'=&gt; 'path',定义 - 网址应该是“漂亮的网址”。
例如: 为myhost /用户/管理员