-1

私は yii フレームワークで Web サイトを作成し、フレンドリーな URL を作成しようとしています。次のようなフレンドリーな URL を使用する場合:

http://localhost/eshops/     -> calls protected/controllers/SiteController->actionIndex()
http://localhost/eshops/login -> calls protected/controllers/SiteController->actionLogin()
http://localhost/eshops/logout -> calls protected/controllers/SiteController->actionLogout()
 ...

しかし、AbcControllerのような別のコントローラーを使用する方法

http://localhost/eshops/abc/a -> calls protected/controllers/AbcController->actionA()
http://localhost/eshops/abc/b -> calls protected/controllers/AbcController->actionB()

「Error 404」が表示されないのですか?

.htaccess は

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

ルールは protected/config/main.php にあります

'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName'=>false,
    'caseSensitive'=>false,
    'rules'=>array(
        'gii'=>'gii',
        '<action>'=>'site/<action>',
        '<controller:\w+>/<id:\d+>'=>'<controller>/view',
        '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
        '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
    ),
),

ありがとうございました

4

1 に答える 1

1

ルールを実行する順序を覚えておく必要があります! 正しいルールの順序を設定するだけです

'rules'=>array(
        'gii'=>'gii',
        '<controller:\w+>/<id:\d+>'=>'<controller>/view',
        '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
        '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        '<action:(login|logout|register|contact)>' => 'site/<action>',
//      or full access 
//      '<action:\w+>' => 'site/<action>',
    ),
于 2012-11-17T16:38:48.277 に答える