2013-03-21 40 views
0

我希望讓警予無法掩飾進入網址

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 

工作的原因是什麼?

+0

'http:// localhost/demo/greeting'不符合您的任何url規則。 「greeting」控制器的默認操作是什麼? – soju 2013-03-21 13:28:40

+0

你用''有條件重寫,你確定重寫模塊被加載了嗎?這是什麼意思*不工作*,Apache錯誤或yii錯誤? – 2013-03-21 16:49:02

回答

-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 url的一部分。使用這個,你也可以打開你的gii面板使用以下網址http://localhost/demo/gii

也在什麼.htaccess你做了這個改變?

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目錄的根目錄下。