【雜記】:引用( 如&get_item() )不能直接賦給靜態變量如$static,可是能夠這樣:$static[0] = &get_item()php
一:http://www.cnblogs.com/mier/archive/2009/05/04/1448431.html 詳解PHP框架codeigniter(簡稱CI)如何實現MVC模式以及單一入口html
淺析Apache中RewriteRule和RewriteCond規則參數的詳細介紹服務器
一開始老是失敗的原始是在Apache的配置上.起做用的配置文件有兩個:httpd.conf和vhost.conf.其中vhost.conf中的一行爲:Options -Indexes -FollowSymLinks +ExecCGI,將其中的-變爲+就好了。CI根目錄下的.htaccess中的代碼爲:框架
#注意:這裏只是去掉index.php, 若是網站根目錄下還有一層(好比/CodeIgniter-3.1.6)那麼訪問時這一級仍然仍是要加上的。固然能夠在其餘地方過濾掉,
可是這裏不能省略)
<ifModule mod_rewrite.c>
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /CodeIgniter-3.1.6/index.php/$1 [L] </ifModule> 網站根目錄是xxx/www,CI位於www之下。通過本身的測試,最後一行代碼其實變爲RewriteRule ^(.*)$ index.php/$1 [L]也能夠。
上不明白這些代碼具體什麼意思。之後研究。
====================================================================
二次研究:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
# 含義解釋: 除已存在的目錄和文件,其餘的 HTTP 請求都會通過你的 index.php 文件。
# 如下內容只是推測:
# RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
# 注: http://localhost/CodeIgniter-3.1.7/welcome會被解析爲
# http://localhost/CodeIgniter-3.1.7/index.php/welcome
# RewriteRule ^(.*)$ /index.php/$1 [QSA,PT,L] /表示網站根目錄
# 注: http://localhost/CodeIgniter-3.1.7/welcome會被解析爲
# http://localhost/index.php/welcome
#解釋:index.php所在目錄是http://localhost/CodeIgniter-3.1.7/,
#規則中的(.*)捕獲的是上面所述網址後面的全部部分,便是welcome,而後將其
#替換$1,若是規則是index.php/$1則將替換後的index.php/welcome放在上面
#所述網址的後面(即代替原來的welcome),即:http://localhost/CodeIgniter-3.1.7/index.php/welcome
#而若是規則是/index.php/$1則將替換後的index.php/welcome放在服務器配置的
#網站根目錄後(即代替網站根目錄後的全部部分)即:http://localhost/index.php/welcome
三,CI文件加載流程:函數