PHP在Linux環境下根目錄怎麼理解?

來源:互聯網
上載者:User
之前都是在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”這樣的路徑”一個性質

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.