url的4種訪問方式 (這是重點!!)
1.PATHINFO 模式 --重點 在后面使用非常多,如果想傳多個參數可以使用鍵1/值1/鍵2/值2方法
代碼如下: http://域名/項目名/入口文件/模塊名/方法名/鍵1/值1/鍵2/值2
2.普通模式也稱為重寫模式
代碼如下: http://域名/項目名/入口文件?m=模塊名&a=方法名&鍵1=值1&鍵2=值2
3.REWRITE重寫模式,去掉入口文件便於SEO優化
代碼如下: http://域名/項目名/模塊名/方法名/鍵1/值1/鍵2/值2
4.兼容模式
代碼如下: http://域名/項目名/入口文件?s=模塊名/方法名/鍵1/值1/鍵2/值2
如何修改PATHINFO地址中的/改成-在Home/Conf/config.php中
代碼如下: 'URL_PATHINFO_DEPR'=>'-',//修改RUL的分隔符,把地址欄的參數部分/換成:http://域名/項目名/入口文件/模塊名-方法名-鍵1-值1-鍵2-值2
在index.php中開啟調用模式,為了在后產模式中不讓文件緩存影響開發
代碼如下: define('APP_DEBUG',ture);//如果設置為ture不緩存文件,false則緩存文件
REWRITE模式開啟方法
在httpd.conf中查找rewrite_module modules/mod_rewrite.sl 把#去掉重啟服務,在入口文件下新建.htaccess.php,重寫文件是去掉index.php的意思:
代碼如下: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
路由處理過程大概如下: 1.遍歷路由規則rule,與當前PATHINFO字符串進行匹配,如果合法,則從PATHINFO中取出所需要的字符串。 2.路由中每條規則對應一個router,router中指定對應的模塊以及方法,模塊和方法可以用第1步中匹配到的字符串進行動態替代。 3.將剩余的參數都解析並寫入到$_GET中。