thinkphp 如何去除url中的index.php

使用 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.phpernote.com.txt),然後在DOS裏面輸入如下命令:

rename www.phpernote.com.txt .htaccess
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章