Thinkphp 如何去除url中的index.php

2016-10-10 1517 0 編輯:深色多郎 來源:程序設計書籍

使用 thinkphp 開發的應用的 url 中通常都會帶個 index.php ,如果我們需要偽靜態或者做 SEO 優化的時候,這個是非常不好看也沒有意義的。那么我們該如何去除 thinkphp 應用 url 中的 index.php 呢?

對于這個問題我們可以通過URL重寫的方式解決,當然這個是需要服務器開啟 URL_REWRITE 模塊才可以的。所以進行下面的步驟前請確定你的服務器是否已經開啟了或者是否能開啟 URL_REWRITE。

(1)如果沒有開啟 URL_REWRITE,則你需要找到 Apache 中的 httpd.conf 這個配置文件,找到下面這行:

#LoadModule rewrite_module modules/mod_rewrite.so

把前面的警號去掉,然后繼續找到下面這句:

AllowOverride None

將所有找到的以上語句都改為:AllowOverride All

以上修改完畢然后重啟 Apache 服務器即可。

(2)在應用的根目錄下面新建一個 .htaccess 文件。在文件里面加入如下代碼:

查看代碼打印

 <IfModule mod_rewrite.c>

  RewriteEngine on

  RewriteCond %{REQUEST_FILENAME} !-d

  RewriteCond %{REQUEST_FILENAME} !-f

  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

  </IfModule>

其實以上就已經實現了去除 url 中的 index.php 字符直接訪問應用了。但是僅僅以上兩步操作還會出現的一個問題就是 thinkphp 的常量 __URL__ 中還是會自動帶上 index.php 這段字符串,徹底解決這個問題的辦法是在項目的配置文件里加上如一條如下配置:

查看代碼打印

'URL_MODEL'=>'2'

至此 thinkphp 應用 url 中的 index.php 就徹底無影無蹤了。

注意:在 windows 下不能直接建立 .htaccess 這種文件,你可以先隨便建立一個文件(如:www.xxxxx.com.txt),然后在DOS里面輸入如下命令:

rename www.phpernote.com.txt .htaccess。

本站文章均為深正網站建設摘自權威資料,書籍,或網絡原創文章,如有版權糾紛或者違規問題,請即刻聯系我們刪除,我們歡迎您分享,引用和轉載,但謝絕直接搬磚和抄襲!感謝...
關注深正互聯
七星彩头尾