之前都是在windows下做開發,最近開始了linux之旅,被路徑的問題搞暈了。
之前理解的“/”就是項目根目錄,隨便怎麼寫,不會跑出專案範圍,除非寫“D:/xxx”這樣的路徑,會對應到具體的盤符下的檔案。
現在看到linux下原項目用的file_exists("/xxx"),直接指到系統根目錄去了。而header("Location:/xxx")又是指的項目目錄,實在是有點頭暈了。
誰能指點一番嗎?多謝~
回複內容:
之前都是在windows下做開發,最近開始了linux之旅,被路徑的問題搞暈了。
之前理解的“/”就是項目根目錄,隨便怎麼寫,不會跑出專案範圍,除非寫“D:/xxx”這樣的路徑,會對應到具體的盤符下的檔案。
現在看到linux下原項目用的file_exists("/xxx"),直接指到系統根目錄去了。而header("Location:/xxx")又是指的項目目錄,實在是有點頭暈了。
誰能指點一番嗎?多謝~
我覺得你是被自己搞暈了。file_exists這種類型的屬於檔案操作,使用的路徑是作業系統的路徑,而header("Location:...")這種是url操作,使用的路徑是web路徑(就是基於當前網域名稱的)。
通常在配置網站的時候,比如apache會讓你指定網域名稱對應的檔案系統路徑,如
Server www.example.com
Documentroot /var/www/example/public
此時 header('Location: /user/index.php') 是指 www.example.com/user/index.php
如果你想編輯www.example.com/user/index.php對應的檔案呢,那麼應該在 /var/www/example/public/user/index.php
關於路徑,windows和linux的唯一區別就是盤符,但是對於'/'的解釋是一致的,例如dos下面
c:/> e:
e:/> cd www/abc
e:/www/abc/> cd / <- 斜杠是表示當前盤符下的根目錄,你不會沒這麼用過吧?
e:/>
Linux中的“/”就和你說的“除非寫“D:/xxx”這樣的路徑”一個性質