在弄yii的url重寫,希望能把url改成更好記的形式,同時去掉index.php的部分。轉化前後的對比:
修改前: http://localhost/index.php?r=site/page?view=about
修改後: http://localhost/site/page?view=about
查了些資料完成以上的效果。我到環境是: apache2(httpd-2.2.21), php5.3.8, yii 1.1.8
step 1
首先先確保apache2有rewrite模組,具體可通過phpinfo()看到apache的模組。
我在這步折騰了不少時間,不管怎麼編譯都出不來,最後是通過如下完成到:
如果沒出錯,在/usr/local/apache2/modules/ 中就會有mod_rewrite.so了 注意,然後只能在httpd.conf檔案裡新增以下一行,,
loadmodule rewrite_module modules/mod_rewrite.so
重啟apache即可。
step 2
然後修改protected/config/main.php,修改如下:
『urlmanager』=>array(
『urlformat』=>』path』,
『showscriptname』=>false, // 這一步是將**裡鏈結的index.php隱藏掉。
『rules』=>array(
『/』=>』/view』,
『//』=>』/』,
『/』=>』/』,
),),
這一步之後,在yii裡的所有鏈結將不會看到index.php,但還應該到apache在收到如此url請求時懂得加上index.php,這就需要url重寫了。
step 3
有了step1的前提,就可以在yii專案的根目錄(和index.php同級目錄)下新增.htaccess目錄,在裡面寫上:
options +followsymlinks
indexignore */*
rewriteengine on
rewritecond % !-f
rewritecond % !-d
rewriterule . index.php
就ok了。
YII的重寫規則
如果不用內建sever去開發專案,輸入 會報object 則按照下列步驟即可使用安裝開發環境 yii寫的 根目錄在web下 第一步 要在httpd.conf中開啟apache的rewrite模組 第二步 在web下建立.htaccess檔案,檔案內容如下 ifmodule mod rewrite.c...
YII教程 Yii生成下拉列表
yii生成下拉列表主要用到了chtml類 裡面的兩個靜態方法listdata和dropdownlist。listdata接收四個引數 array model 指的是我們從資料庫查詢的記錄結果。string valuefield 指的是下拉列表option value屬性的值。string textf...
Yii2 Apache Nginx 路由重寫
一 什麼是路由重寫 重寫後的http訪問位址 www.test.com post view id 100 這樣的鏈結看起來簡潔美觀,對於使用者比較友好。同時,也比較適合搜尋引擎的胃口,據說是seo的手段之一。二 apache 路由重寫 一 開啟apache的重寫模組 1.開啟apache的confi...