yii无法隐藏输入网址

时间:2013-03-21 12:46:38

标签: php yii

我想让

http://localhost/demo/index.php?r=greeting

通过

访问
http://localhost/demo/greeting

在config / main.php中,我设置为

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

我把以下内容放到.htaccess

Options +FollowSymLinks
IndexIgnore */*
<IfModule mod_rewrite.c>
RewriteEngine on

# 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
</IfModule>

我可以

http://localhost/demo/index.php/greeting

工作但不是

http://localhost/demo/greeting

是什么原因?

2 个答案:

答案 0 :(得分:0)

这对我有用......

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

用于htaccess部分

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#otherwise forward to index.php
RewriteRule . index.php

看起来像你的,但你必须确保.htaccess文件在受保护的文件夹之外,因此在你的web目录的根文件夹中。

答案 1 :(得分:-1)

'urlManager'=>array(
        'urlFormat'=>'path',
                    'showScriptName'=>false,
        'rules'=>array(
                            'gii'=>'gii',
                            'gii/<controller:\w+>'=>'gii/<controller>',
                            'gii/<controller:\w+>/<action:\w+>'=>'gii/<controller>/<action>',

            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>/<key:\w+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>/<id:\w+>/<param:\w+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),

试试这个。它的工作对我来说。这也包括gii网址的一部分。使用此功能,您还可以使用以下网址http://localhost/demo/gii

打开您的gii面板

还有什么.htaccess你做了这个改变?