Yii 框架的訪問地址若不簡化會讓人覺得很繁瑣,未簡化的地址一般格式如下:
http://localhost:80/test/index.php?r=xxx/xxx/xxx
若是帶有參數會更復雜:
http://localhost:80/test/index.php?r=xxx/xxx/xxx¶m1=XXX¶m2=XXX
那么我們通過什么方法把它美化下呢:
1.在config文件夾下的main.php文件內,找到urlManager的配置,修改為如下:
'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>',
'<controller:/w+>/<action:/w+>'=>'<controller>/<action>',
),
),
現在再來訪問你的項目,你就會發現你的項目URL變成了:
http://localhost:80/test/index.php/XXX/XXX
2.這和不夠,我們想繼續簡化,把index.php也去掉。繼續修改main.php文件,
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false, //去除index.php
//'urlSuffix'=>'.html', //加上.html
'rules'=>array(
'<controller:/w+>/<id:/d+>'=>'<controller>/view',
'<controller:/w+>/<action:/w+>/<id:/d+>'=>'<controller>/<action>',
'<controller:/w+>/<action:/w+>'=>'<controller>/<action>',
'<controller:/w+>/<action:/w+>'=>'<controller>/<action>',
),
),
這么修改之后,index.php不見了,但是會發現,部分URL出錯了。怎么解決呢?
3.添加 .htaccess文件,用于項目的訪問。內容如下:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
IndexIgnore */*
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>
這樣進入項目就會自動訪問index.php文件,url就不會錯亂了。
最后簡化后的URL如下:
http://localhost:80/test/XXX/XXX
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答