0

我开发了一个 webapp,现在想在 yii 中重写 url,我正在使用 yii。重写模式已打开并正在处理我的其他 php 项目,除了 yii。我当前的网址是/myhost/servers_cms/index.php?r=users/admin 但我想要这个/myhost/servers_cms/users/admin。

这是我的 main.php 代码

'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'caseSensitive'=>false,
),

.ht 访问代码

RewriteEngine On
RewriteBase /servers_cms
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
4

2 回答 2

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* 并访问 users/admin controller/action

于 2012-11-05T11:03:57.347 回答
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”

如果控制器是“用户”并且操作是“管理员”,那么它将重定向到“example.com/user/admin”

'urlFormat' => 'path' 定义 - url 应该是“漂亮的 url”。

示例:我的主机/用户/管理员

于 2016-06-09T09:06:55.337 回答