yii url隱藏index.php的方法:先在web根目錄下增加「.htaccess」檔案;然後修改設定「config/web.php」;最後將「AllowOverride None」修改為「AllowOverride All ;”即可。
Yii 框架開啟URL 美化,隱藏index.php [ 2.0 版本]
url美化
目的:將http://localtest/yii/web/index.php?r= hello/index
美化成:http://localtest/yii/web/hello/index
這裡我是用的wampserver新建了一個localtest網站(詳情可點擊這裡點擊這裡) ,並將yii的basic資料夾重新命名為yii。
比較上面的兩個位址,其實就是把index.php?r=隱藏。
這裡分兩步:
1、增加.htaccess文件
在web根目錄下增加.htaccess文件,內容為:
RewriteEngine On DirectoryIndex index.html index.php # 如果是一个目录或者文件,就访问目录或文件 RewriteCond %{REQUEST_FILENAME} !-d #如果文件存在,就直接访问文件,不进行下面的RewriteRule RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . index.php
無法直接建立.htaccess,可以先建立一個txt文件,然後另存為…,儲存為文件名稱為.htaccess,儲存類型選擇所有文件即可。
2、設定config/web.php 在config/web.php中的components陣列中增加此一項:
'urlManager' => [ // //开启url美化 'enablePrettyUrl' => true, // //隐藏index.php 'showScriptName' => false, // //禁用严格匹配模式 'enableStrictParsing' => false, // //url后缀名称 // 'suffix'=>'.html', 'rules' => [ ], ],
這時,可以將URL中的index.php?r =刪除,如果出現404報錯,可以查看伺服器的配置,我使用的是phpstudy中整合的apache 需要檢查一下配置
conf\httpd.conf中,開啟apache 的mod_rewrite 模組
去掉LoadModule rewrite_module modules/mod_rewrite.so 前的“#”符號;
然後修改apache 的AllowOverride
將AllowOverride None 修改為AllowOverride All;
由於我是在conf\extra\httpd-vhosts.conf中設定了站點,所以需要同步去httpd-vhosts.conf中將對應站的AllowOverride None 修改為AllowOverride All;
#至此,我就可以用http: //localtest/yii/web/hello/index
來存取http://localtest/yii/web/index.php?r=hello/index
以上是yii url隱藏index.php的詳細內容。更多資訊請關注PHP中文網其他相關文章!