codeigniter 移除 URL 中的 index.php


官網給的訪問數據庫讀取數據並顯示的例子:

http://codeigniter.org.cn/user_guide/tutorial/news_section.html


按照例子增加代碼完成後,訪問url : www.xxx.com/index.php/news


明明訪問的是news/view,每次都還得帶上index.php,看着就蛋疼。。。。。。


因此有了本文: 移除 URL 中的 index.php


參照官網:CodeIgniter URL
http://codeigniter.org.cn/user_guide/general/urls.html



Apache 服務器啓用mod_rewrite ,網址根目錄下增加 .htaccess文件再加上一些簡單的規則就可以移除 index.php 了。下面是官網給的一個例子,其中使用了 "否定條件" 來排除某些不需要重定向的項目:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

在上面的例子中,除已存在的目錄和文件,其他的 HTTP 請求都會經過你的 index.php 文件。

註解:這些規則並不是對所有 Web 服務器都有效。

註解:確保使用上面的規則排除掉你希望能直接訪問到的資源。

註解:去掉apache配置文件中的LoadModule rewrite_module modules/mod_rewrite.so的#,就打開了mod_rewrite。



按照codeigniter官網說的修改完畢,重啓 apache,然後訪問url:www.xxx.com/news
然後渣渣的提示 Not Found。。。。。。。 吐你一臉


妹的,光寫了 .htaccess文件, .htaccess文件不起作用,玩個毛線啊。。。。。。。。。

繼續修改apache的配置文件,將網站對應的目錄下的AllowOverride設置爲All

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    # AllowOverride None
    #  允許.htaccess文件起作用
    AllowOverride All








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