激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 教你如何在CI框架中使用 .htaccess 隱藏url中index.php

教你如何在CI框架中使用 .htaccess 隱藏url中index.php

2020-07-02 14:41PHP實例教程 PHP教程

CodeIgniter(以下簡稱"CI")是一款國外優秀的PHP輕量級MVC框架,它支持PHP4和PHP5,是開發中小型可拓展性需求高的Web應用程序的利器。很多博客程序,開源的cms程序,都是采用CI進行的編寫。

秉承MVC架構的思想,CI中的所有控制器都需要經過單點入口文件index.php(默認)來加載調用。也就是說,在默認情況下,所有CI開發項目的URL都形如以下這種形式:

http://localhost/index.php/blog/logs/this_is_a_test_entry

很顯然,默認情況下,index.php在URL地址段中的存在一定程度上影響了URL的簡潔和SEO的進行。我們可以通過下面本文介紹的方法來去掉這個討厭的Index.php。

你或許已經注意到在CodeIgniter用戶手冊中,已經存在關于此問題的解決方法。但官方提供的這個.htaccess配置,并不是所有時候都能解決問題。本文現在給出一個更完善的解決方案。

注意:在繼續之前,請確認你的主機支持.htaccess配置。其中,如果Apache作為Web服務器,需要開啟mod_rewrite模塊的支持;如果將IIS作為Web服務器,則需要額外安裝ISAPI_Rewrite拓展。

具體方法如下:

1. 將以下配置信息復制并保存為.htaccess文件。
以下為.htaccess文件信息
 

復制代碼 代碼如下:


RewriteEngineOn

 

RewriteBase / 

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule^(.*)$ /index.php?/$1 [L]     

#如果沒有安裝mod_rewrite模塊,所有的404頁面都將被 #發送到index.php,此時,程序會像沒有設置隱藏時一樣運行  
ErrorDocument404 /index.php

 

2. 將以上.htaccess文件上傳到CI所在項目的根目錄(即與index.php同級目錄下)

3. 修改application/config.php中的如下參數:

 

復制代碼 代碼如下:

$config['index_page'] = "index.php";

 

 

復制代碼 代碼如下:

$config['index_page'] = ""; //設置為空

 

以上三步,缺一不可。如果一切配置正常,你會發現,再次運行程序的時候,程序已經自動隱藏index.php這個URL段了!

Trackback(UTF-8):http://www.cnSaturn.com/trackback/40

CodeIgniter中開啟PATH_INFO時mod_rewrite隱藏index.php的問題。

在CodeIgniter中,當我將URI尋址方式從AUTO更改為PATH_INFO時,即:

 

復制代碼 代碼如下:

$config['uri_protocol'] = 'PATH_INFO';

 

注:PATH_INFO的開啟,是因為我希望通過$_GET來取值,而不是系統默認的POST方式。

在此情況下如何仍然使用以上.htaccess方案,結果將是:index.php順利隱藏,但主控制器并不能正確的獲取值。

解決方案如下,就一步:

去掉以下重寫規則中index.php后面的問號即可。

 

復制代碼 代碼如下:

 RewriteRule^(.*)$ /index.php?/$1[L]

 

修改后的規則如下:

 

復制代碼 代碼如下:

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

 

其他地方不變。

如何刪除index.php文件

估計很多人學習CodeIgniter第一步想做的就是如何去掉index.php,這個官方手冊就有相關教程,修改.htaccess 文件(前提是你的服務器是apache):

 

復制代碼 代碼如下:

    RewriteEngine on
    RewriteCond $1 !^(index\.php|images|robots\.txt)
    RewriteRule ^(.*)$ /index.php/$1 [L]

 

當然了,有很多人按照要求修改了,但是卻出現了錯誤,所有的訪問都404了,而且,這個404是apache的404頁面,而不是CodeIgniter的404錯誤頁面。

出現這種問題,是對apache的rewrite規則不理解:

    第一行、將RewriteEngine引擎設置為on,就是讓url重寫生效;
    第二行、配置url重寫規則,!^(index\.php|images|robots\.txt) 這個正則表達式指明了哪些文件不需要重寫,而是直接訪問;
    第三行、^(.*)$是一個正則表達式,意思是對所有請求都發送到/index.php/$1,熟悉url的人都知道,以反斜杠(/)開頭的,都是相對路徑,相對于誰呢?根,也就是網址。

所以呢,如果CodeIgniter如果不是安裝在網站的根目錄,必然會出現錯誤。如何解決呢,在CodeIgniter手冊中也給出了相應的解決方案:

把上面最后一句改為:

復制代碼 代碼如下:

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

 

只需要去掉index.php前面的斜杠就行。

如何添加url后綴

通過上面的步驟,我們已經隱藏了index.php了,現在我們制作的網站更加的rest了,一般人已經無法一眼就看出你的網站是用CodeIgniter開發的,還是ROR開發的。

但是,如何在url后面增加后綴呢,這樣,我們甚至可以隱藏或者偽造網站的開發語言,通過修改 config/config.php 文件,你可以為 CodeIgniter 生成的 URL 添加一個指定的文件后綴,比如你可以添加.html,甚至你可以添加.asp,.jsp。

這樣我們就可以將 https://www.demo.net/index.php/news/view/about 變成 https://www.demo.net/index.php/news/view/about.html。
如何使用查詢字符串

一般情況下我們不需要使用查詢字符串,但是,總有一些特殊情況,是我們用CodeIgniter的rest模式無法完成的,這樣我們就需要在 URL 中使用查詢字符串:

 

復制代碼 代碼如下:

    index.php?c=products&m=view&id=345

 

CodeIgniter 默認此功能是關閉的,如果想開啟的話,打開配置文件 application/config/config.php 您可以看到如下內容:

 

復制代碼 代碼如下:

    $config['enable_query_strings'] = FALSE;
    $config['controller_trigger'] = 'c'; //控制器名
    $config['function_trigger'] = 'm'; //方法名
    $config['directory_trigger']='d'; //控制器所在子目錄名稱

 

如果你將 enable_query_strings 更改為 TRUE ,那么這個功能就被激活了。此時,你就可以通過關鍵字來調用需要的控制器和方法了:

 

復制代碼 代碼如下:

    index.php?c=controller&m=method

 

當我們在使用CodeIgniter制作分頁的時候,這個就可以派上用場了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人高清在线观看 | 日韩毛片在线看 | 日本特级a一片免费观看 | 十级毛片 | 国产99久久精品一区二区 | av大全在线播放 | 一区二区三区视频在线观看 | 韩国一大片a毛片 | 久久中文免费 | 日韩精品中文字幕一区二区三区 | 国产精品伦视频看免费三 | 国产色爱综合网 | 羞羞的动漫在线观看 | 日产精品一区二区三区在线观看 | 一级黄色影片在线观看 | 福利在线播放 | 在线播放污 | 午夜a狂野欧美一区二区 | 伊人在线 | asian超清日本肉体pics | 欧美日韩大片在线观看 | 黄色电影免费提供 | 草久免费 | 亚洲成人精品在线 | 最新中文字幕在线视频 | 久久男人天堂 | 成人午夜免费在线视频 | h久久| 欧美 videos粗暴 | 国产精品久久久久久影院8一贰佰 | 黄色日韩网站 | 久久美女免费视频 | 成人国产精品一区二区毛片在线 | 国产青草网 | 亚洲嫩草av| 999久久国产 | 青青操精品 | 国产免费美女 | 主人在调教室性调教女仆游戏 | 在线天堂中文在线资源网 | 色天使中文字幕 |