0

私はウェブアプリを開発しましたが、yiiでURLを書き直したいと思っています。imはyiiを使用しています。書き換えモードがオンになっていて、yiiを除く他のphpプロジェクトで動作しています。私の現在のURLは/myhost/servers_cms/index.php?r=users/adminですが、これは/myhost/servers_cms/users/adminが必要です。

これが私のmain.phpコードです

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

.htaccessコード

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

それが機能しているかどうかを確認するには、users / admin controller / actionのカスタムルールを作成して、次のように機能するかどうかを確認してください。

'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」にリダイレクトされます

コントローラーが「user」でアクションが「admin」の場合、「example.com/user/admin」にリダイレクトされます

'urlFormat' => 'path' が定義します - URL は「pretty url」でなければなりません。

例: myhost/user/admin

于 2016-06-09T09:06:55.337 に答える