前段時間用Apache配合TP開發了一個小型網站,也算是我使用TP的第一次實戰。我習慣使用pathinfo模式,本地運行一切正常,然而部署到服務器上時,由于對方使用的是Nginx,默認是不支持ThinkPHP的pathinfo模式,所以導致路徑錯誤,出現了頁面循環跳轉的問題,于是就把nginx下載下來在本地親自測試。
其實,要解決nginx不支持pathinfo的問題,有兩個解決思路,一是不使用pathinfo模式,二是修改nginx的配置文件,使它支持pathinfo。為了使問題簡單化,我選擇了第一種方式,因為就第二種方式,我查了很多資料,發現大家的方法不盡相同,有的還差別很大,容易造成誤導,所以我選擇從簡出發,選擇普通模式,雖然有一定的風險。當把index.php對應的前臺代碼修改完畢之后,發現前臺基本正常,可是后臺仍然出現重定向的問題。折騰了半天之后,我才想到看一下日志文件,原來是編輯器的問題,看來日志文件真的很重要,以前一直不重視。在config.php文件的第一行出現了輸出,
在sublime下,一般會為UTF-8文件添加BOM頭,這個BOM頭在window下通常是看不見的,可以通過其他的編輯器查看到,Linux下也可以直接看到,通常顯示出來是一個亂碼字符,把這個字符刪除即可,或者簡單一點,直接在第一行回車,再刪除就可以了。到這里,后臺基本可以訪問了。
有幾個小問題需要說明一下。
1.在登錄的時候,我是通過外部js文件發送Ajax請求進行驗證的,在js與ThinkPHP模塊函數通信遇到了點問題,一直不知道正確的路徑該怎么寫,也沒有查到相關資料,只能各種試,好在找到了解決辦法,通過直接帶上入口文件名的方式,代碼如下
代碼如下:
var url="system.php?m=Login&a=doLog";
$.post(url,{"staffname":$staffname,"staffpwd":$staffpwd,"verifycode":$verifycode},function(data){
if(data=="codeerr"){
alert("驗證碼錯誤!");
}else if(data=="authempty"){
alert("請輸入用戶名或密碼!")
}else if(data=="autherr"){
alert("用戶名或密碼錯誤!");
}else if(data=="success"){
alert("登錄成功!");
location.href="system.php?m=Index&a=index"; //訪問首頁
新聞熱點
疑難解答