我在lnmp 下架了一個thinkPHP架構對應的小網站,非常奇怪,在環境都配置好後(設定檔裡預設模組是Index,預設方法是index),我在url裡輸入localhost:10007/index.php/member/login,正常來說應該顯示login.html,但是顯示的是index.html的頁面,只是樣式都不對,查看原始碼後發現樣式路徑是這樣的,/index.php/index.php/member/index/Tpl/css/style.css,後來我config.php裡的配置項改了如下:
'DEFAULT_MODULE'=>'Member', //設定預設的控制器名稱
'DEFAULT_ACTION'=>'login', //設定預設的方法名稱
又回無論url輸入什麼都總停留在login.html對應頁,但是樣式不對,產看原代碼後發現樣式路徑是這樣的,/index.php/index.php/index/index/Tpl/css/passport.min.css
總之,好像我的'DEFAULT_MODULE'和'DEFAULT_ACTION'配置項配置成什麼,url無論輸入什麼都回顯示與設定檔中預設的模組和方法對應的html檔案
而且,應該也不是架構的問題,我從新下了個最新版本的thinkPHP,也不行,這次連index.html頁面也顯示不出來
我感覺就是我的那裡配置不對,,但是又找不到!!!
主要的目錄結構是這樣:
App
index
Conf
config.php
Common
Lang
Runtime
Lib
Action
IndexAction.class.php
MemberAction.class.php
Tpl
default
Index
index.html
Member
login.html
js
css
images
ThinkPHP (ThinkPHP架構)
index.php
index.php內容如下
config.php頁面
'配置值' 'DEFAULT_MODULE'=>'Index', //設定預設的控制器名稱 'DEFAULT_ACTION'=>'index', //設定預設的方法名稱 'APP_DEBUG'=>true, //開啟偵錯模式 'TMPL_L_DELIM'=> '{{', // 模板引擎普通標籤開始標記 'TMPL_R_DELIM'=> '}}', // 模板引擎普通標籤結束標記 'URL_MODEL'=> 0, 'DB_NAME'=> 'Route', 'DB_PREFIX'=> 'p_', 'TMPL_ENGINE_TYPE'=>'Smarty', 'TOKEN_ON'=>false, 'TOKEN_NAME'=>'__hash__', 'TOKEN_TYPE'=>'md5', 'DB_FIELDTYPE_CHECK'=>false, 'TMPL_ENGINE_CONFIG'=>array( 'caching'=>false, 'template_dir'=>TMPL_PATH, 'compile_dir'=>CACHE_PATH, 'cache_dir'=>TEMP_PATH, 'left_delimiter'=>"{{", 'right_delimiter'=>"}}" ), 'TMPL_ACTION_ERROR' => TMPL_PATH.'default/Public/error.html', // 預設錯誤跳轉對應的模板檔案 'TMPL_ACTION_SUCCESS' => TMPL_PATH.'default/Public/success.html',);?>
IndexAction.class.php頁面
display(); }}?>
MemberAction.class.php頁面
display(); }}
index.html 和 login.html 是內容不同的兩個靜態頁面
回複討論(解決方案)
原來是因為nginx下預設不支援thinkPHP的url的pathinfo 模式,,需要更改nginx的設定檔
apache和nginx是存在很多差?的,不可相同?之
如果?nginx缺少?解的?最好是?用,否?就像csdn一?常常出? 50x 的??
恩,Apache與Nginx之間有很多差異,比如說rewrite重寫規則就有一定的差異...
如果有人也遇到同樣問題,可以參考這個網址,,但我沒成功,我不是完全按他的來的。。http://blog.fity.cn/post/416/
恩,,回頭學習下nginx以後肯定會經常接觸