Yii1中的网址管理员和Htaccess

时间:2015-10-22 07:18:15

标签: php .htaccess yii1.x

我的网址是这样的:

  

www.studyenglish / index.php的R =网站/教训&安培; ACT =读和ID = 1

我想改成:

  

www.studyenglish /站点/课/读

我已在url manager config / main.php中添加了此脚本

'urlManager'=>array(
       ....
       'showScriptName'=>false,
        ....
    ),

并在.htaccess

中添加此脚本
Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# 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

但它只能在这样的网址中使用:

  

www.studyenglish /的index.php?R =网站/课

是:

  

www.studyenglish /站点/课

那么,如何更改此网址

  

www.studyenglish / index.php的R =网站/教训&安培; ACT =读和ID = 1

  

www.studyenglish /站点/课/读

希望有人可以提供帮助。 谢谢......

3 个答案:

答案 0 :(得分:1)

UrlManager 中有规则,您可以定义自己的规则。 您的UrlManager可能如下所示。

'urlManager' => array(
'urlFormat' => 'path',
    'rules' => array(
        'gii' => 'gii/index',
        'gii/<controller:\w+>/<action:[\w-]+>' => 'gii/<controller>/<action>',
        '<controller:\w+>/<id:\d+>' => '<controller>/view',
        '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
        'site/lesson/<act:\w+>/<id:\d+>' => 'site/lesson'
        //

这将在 SiteController 中调用 actionLesson ,这应该会获得两个参数。

你的方法应该是这样的。

public function actionLesson($act,$id){
    //
}

答案 1 :(得分:1)

将.htaccess更改为:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# 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?r=$1 [L]

并在网址管理器中添加适当的规则。

答案 2 :(得分:0)

urlManager更改为:

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

和您的.htaccess赞:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# 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 [L]