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 的特殊環境,基本上用不到。
文章列表
留言列表