去掉 URL 中的 index.php
ThinkPHP 作為 PHP 框架禁筏,是單一入口的持钉,那么其原始的 URL 便不是那么友好。但 ThinkPHP 提供了各種機(jī)制來(lái)定制需要的 URL 格式篱昔,配合 Apache .htaccess 文件每强,更是可以定制出人性化的更利于 SEO 的 URL 地址來(lái)。
.htaccess文件是 Apache 服務(wù)器中的一個(gè)配置文件州刽,它負(fù)責(zé)相關(guān)目錄下的網(wǎng)頁(yè)配置空执。我們可以利用 .htaccess 文件的 Rewrite 規(guī)則來(lái)隱藏掉 ThinkPHP URL 中的 index.php 文件(即入口文件),這也是 ThinkPHP URL 偽靜態(tài)的第一步穗椅。
例如原來(lái)的 URL 為:
http://www.5idev.com/index.php/Index/insert
去掉 index.php 之后變?yōu)椋?br>
http://www.5idev.com/Index/insert
如此一來(lái)辨绊,就變成了 http://服務(wù)器地址/應(yīng)用模塊名稱/操作名稱[/變量參數(shù)] 的常見 URL 格式。
更改 Apache httpd.conf 配置文件
提示:如果在虛擬主機(jī)商配置房待,請(qǐng)直接配置第三邢羔、四步驼抹,因?yàn)橹С?.htaccess 的空間已經(jīng)配置好了前面兩步。
用編輯器打開 Apache 配置文件 httpd.conf(該文件位于 Apache 安裝目錄Apache2conf)拜鹤,并按如下步驟修改框冀,。
一敏簿、加載了 mod_rewrite.so
確認(rèn)加載了 mod_rewrite.so 模塊(將如下配置前的 # 號(hào)去掉):
LoadModule rewrite_module modules/mod_rewrite.so
二明也、更改 AllowOverride 配置
更改需要讀取 .htaccess 文件的目錄,將原來(lái)的目錄注釋掉:
更改 AllowOverride None 為 AllowOverride FileInfo Options 惯裕,更改后的配置如下所示:
AllowOverride FileInfo Options
.htaccess 是基于目錄來(lái)控制的温数, 該句即表示需要讀取 .htaccess 文件的目錄,要根據(jù)實(shí)際具體 Apache 的解析目錄來(lái)配置蜻势。虛擬主機(jī)如果提供 .htaccess 控制撑刺,一般都已經(jīng)配置好了。
三握玛、添加 .htaccess 文件 Rewrite 規(guī)則
在需要隱藏 index.php 的目錄下(本教程中為 E:/html/myapp够傍,也即入口文件所在目錄)創(chuàng)建 .htaccess 文件,并寫入如下規(guī)則代碼:
RewriteEngine on
//不顯示index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
如果網(wǎng)站已經(jīng)有 .htaccess 文件挠铲,在里面添加該段配置規(guī)則即可冕屯。如果不能創(chuàng)建該文件(Windows 平臺(tái)不能創(chuàng)建),可以從本站下載該文件拂苹,但該文件僅配置了隱藏 index.php 的規(guī)則(http://www.5idev.com/Public/download/server/htaccess.rar)
四安聘、更改項(xiàng)目配置文件
編輯項(xiàng)目配置文件 Conf/config.php ,將 URL 模式配置為 2(Rewrite模式):
'URL_MODEL'=>2,
至此瓢棒,各個(gè)配置已經(jīng)完成浴韭。保存各配置文件后,重啟 Apache 服務(wù)器并刪除 Runtime 目錄下的項(xiàng)目緩存文件脯宿,在瀏覽器訪問(wèn)隱藏 index.php 后的地址測(cè)試是否成功:
http://www.5idev.com/html/myapp/Index/index
如果訪問(wèn)成功囱桨,那么利用 Apache .htaccess 文件的 Rewrite 規(guī)則隱藏 index.php 入口文件的配置就成功了。