2013-09-21 73 views
1

我正在完成我的Yii應用程序的工作,我想要更漂亮的網址。我通過搜索網站和Yii wiki搜索並按照手冊進行搜索。不過,我被困在無法隱藏index.php表單的URL中。隨着我的網址它工作的index.php,該網站打開後,沒有它,我gices服務器404Yii 404與urlmanager showscript錯誤

這是我main.config:

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

設置爲false我得到「showScriptName」 404.

這是我的.htaccess

RewriteEngine on 
RewriteBase/
# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(index\.php) 

# otherwise forward it to index.php 
RewriteRule ^(.+)$ index.php?$1 [PT,L,QSA] 

我目前正在測試使用WAMP本地主機上的網站。 Apache上的Mod_rewrite正在運行。將http.conf更改爲選項索引FollowSymLinks允許覆蓋全部。

我還缺少什麼?

回答

1

對於那些掙扎!將.htaccess放到應用程序的根目錄下,而不是在受保護的文件夾中!

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

在你的.htaccess

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 

上傳項目文件夾中的htaccess。

1

嘗試增加:

'' => 'site/index' 

您urlManager '規則' 陣列。 邏輯是,Yii無法匹配任何已定義規則的模式''的請求。