文章出處

ThinkPHP的URL模式有四種,默認是PATHINFO模式,其他三種分別為:普通模式、REWRITE和兼容模式。

一、PATHINFO模式

瀏覽器輸入格式為:

http://localhost/demo39/index.php/模塊/控制器/操作

在Home的Controller建立 UserController.calss.php ,如下圖所示:

在瀏覽器上輸入 http://localhost/demo39/index.php/Home/User 

得到的結果為: user index 

這時在瀏覽器中輸入上面所說的輸入格式,如 http://localhost/demo39/index.php/Home/User/test/user/Lee/pass/123 

則顯示為:

 user:Lee
pass:123 

 PATHINFO 模式下默認的分隔符是/,我們可以設置為你想要的,比如:_

這時,在common/conf/config.php下修改

添加

//設置PATHINFO的分割符
'URL_PATHINFO_DEPR'=>'_',

如下圖所示:

  

這時,在瀏覽器上輸入 http://localhost/demo39/index.php/Home_User_test_user_Lee_pass_123 

這時要注意,在Home之后就要開始使用_符號,得到的結果如下圖所示:

 二、接下來介紹普通模式:

在瀏覽器上輸入  http://localhost/demo39/index.php?m=Home&c=User 

得到 user index 

接下來輸入參數   http://localhost/demo39/index.php?m=Home&c=User&a=test&user=Lee&pass=123 

得到結果為:

user:Lee
pass:123

在這條 URL 上,我們發現采用的就是傳統的 GET 模式,m 表示模塊,c 表示控制器,a表示方法,后面的表示鍵值對。
普通模式的 m、c、a 可以自行設置為你習慣的鍵名稱:

這時在 common/conf/config.php 中添加:

'VAR_MODULE'=>'mm',
'VAR_CONTROLLER'=>'cc',
'VAR_ACTION'=>'aa',

修改完后,在瀏覽器中輸入變為: http://localhost/demo39/index.php?mm=Home&cc=User&aa=test&user=Lee&pass=123 

結果仍為:

user:Lee
pass:123

另外要說一點的就是,在普通模式下時,demo39后面的index.php可以去掉,結果不會有影響。

 

3、REWRITE模式(重寫模式)

httpd.conf 配置文件中加載了 mod_rewrite.so 模塊,

就是在 LoadModule rewrite_module modules/mod_rewrite.so   前面的#號去掉
AllowOverride None 將 None 改為 All,改好這兩處后,重啟apache,
把下面的內容保存為.htaccess 文件放到應用入口文件的同級目錄下
這樣,ThinkPHP 自帶的.htaccess 文件就起作用了,可以過濾掉 index.php 這個字符串。

4、兼容模式一般用于不支持 PATHINFO 的特殊環境,基本上用不到。


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()