1、URL重寫,隱藏網址中的Index.php。
ThinkPHP 作為 PHP 框架,是單一入口的,那麼其原始的 URL 便不是那麼友善。但 ThinkPHP提供了各種機制來客製化需求的 URL 格式,並配合 Apache .htaccess 文件,更是可自訂出人性化的更有利於 SEO 的URL 位址來。
.htaccess檔案是 Apache 伺服器中的一個設定文件,它負責相關目錄下的網頁設定。我們可以利用 .htaccess 檔案的Rewrite 規則來隱藏掉 ThinkPHP URL 中的 index.php 檔案(即入口檔案),這也是 ThinkPHP URL偽靜態的第一步。
例如原來的 URL 為:
http://www.baidu.com/index.php/Index/insert
去掉 index.php 之後變成:
http://www.baidu.com/Inde /insert
如此一來,就變成了 http://網頁位址/應用模組名稱/操作名稱[/變數參數] 的常見 URL 格式。
更改 Apache httpd.conf 設定檔
一、載入了 mod_rewrite.so
確認載入了 mod_rewrite.so 模組(將以下設定前的
二,更改 AllowOverride 配置更改需要讀取 .htaccess 檔案的目錄,將原始的目錄註解掉:#AllowOverride FileInfoOptions
三、新增 .htaccess 檔案 Rewrite 規則
三、新增 .htaccess 檔案 Rewrite 規則三、新增 .htaccess 檔案 Rewrite 規則
三、新增 .htaccess 檔案 Rewrite 規則
至在需要隱藏 index.php 的目錄下方建立 .htaccess文件,並寫入下列規則程式碼:
http://www.baidu.com/html/myapp/ Index/index
如果存取成功,那麼利用 Apache .htaccess 檔案的 Rewrite 規則隱藏 index.php入口檔案的設定就成功了。
2.設定路由,縮短網址的長度。
在common下設定檔中加入下面的程式碼
//开启路由器 'URL_MODEL' => 2, 'URL_ROUTER_ON' => true, 'URL_ROUTE_RULES' => array( 'index' => "Home/Index/index", 'test' => "Home/Index/test", //URL/test.html '/^C_(\d+)$/' => 'Index/index/user?id=:1' //短链接:http://localhost/index.php/C_9 ),
3、偽靜態,給網址加上後綴.html
ThinkPHP 支援偽靜態 URL 設置,可以設定需要的 URL 字尾。編輯專案設定檔Conf/config.php ,將
URL_HTML_SUFFIX 參數設定如下:'URL_HTML_SUFFIX' => '.html',
刪除 Runtime 目錄下的專案快取檔案使設定生效後,在瀏覽器存取位址效果相同:
http://127.0.0.1/html/myapp/index.php/Index/index
http://127.0.0.1/html/myapp/index.php/Index/index.shtml在參數配置中,也可以配置其他任何需要的後綴,注意後綴設定中包括. 符號。設定了偽靜態後,為了保持各處 URL 一致,建議使用 U 方法在模板裡面自動產生 URL,具體請參閱《ThinkPHP U方法自動產生URL》。
提示:
ThinkPHP 偽靜態有一個讓人容易誤解的地方:以為配置好偽靜態之後,系統會自動產生如 xxx.html這類的網址。實際情況不是這樣的,而是如上文所說,配置偽靜態之後,是否有 .html 這類後綴跟無後綴的 URL存取效果是一樣的。因此,如果使用偽靜態,只能手動新增靜態後綴或使用 ThinkPHP U方法 自動產生帶有後綴的 URL 位址。在此,當然推薦使用 U方法 來自動產生具有偽靜態位址的 URL 格式。