是否有一個PHP的方式得到主機名和文檔根從服務器?我想這樣做,而不是將它們作爲變量存儲在您的PHP代碼中。我不願意使用$ _SERVER,因爲我聽說它不可靠並受到攻擊。這怎麼能在虛擬主機上完成?是否存在可靠和安全的方法?網站主機名和文檔根目錄
回答
$_SERVER['DOCUMENT_ROOT']
是可靠的,但$_SERVER['SERVER_NAME']
不是(見Chris Shiflett’s SERVER_NAME Versus HTTP_HOST)。僅當啓用Apache’s UseCanonicalName
時,纔會顯示規範名稱。
就像你提到的,您可以訪問:http://php.net/manual/en/reserved.variables.php 有下面是使用真實路徑()和$ _SERVER獲取文檔根的細分: http://www.helicron.net/php/
此外,您可以執行exec(「主機」)或類似的東西獲取主機名。
我懷疑是不適用於虛擬主機。 – SorcyCat 2010-01-15 18:19:54
你可以嘗試
$docroot = getenv("DOCUMENT_ROOT");
getenv
可以讓你訪問的環境變量。您可以通過打印phpinfo
來查看所有可用的變量。也許apache_getenv
也有幫助。
這是否適用於Windows環境?好的回答,+1 – 2010-01-15 18:14:04
說實話,我不是關於windows的,但是嘗試它並不難;) – 2010-01-15 18:15:04
我可以在今晚的XAMP上測試它。 :) – SorcyCat 2010-01-15 18:19:00
- 1. 將網站移動到本地主機:文檔根已更改
- 2. 匿名訪問SharePoint網站根目錄
- 3. 更改共享主機上的文檔根目錄?
- 4. 虛擬主機文檔根目錄不起作用
- 5. 虛擬主機上的Symfony(文檔根目錄問題)
- 6. HTML文檔命名爲子目錄中的網站子頁面
- 7. 更改文檔根目錄和SSL
- 8. 在網站製作中顯示根目錄文件夾名稱?
- 9. 使所有子域名訪問網站根目錄的文件
- 10. 設置文檔根目錄
- 11. 文檔根目錄PHP
- 12. 根據域名動態提供網站根目錄
- 13. 網站顯示在根目錄和子目錄中
- 14. 在網站上列出本地主機計算機目錄
- 15. MKDIR上面的域根目錄但不是主機根目錄?
- 16. 上傳文件目錄主根目錄
- 17. 爲$ _SERVER [「DOCUMENT_ROOT」]使用文檔根目錄而不是虛擬文檔根目錄
- 18. 更改本地主機文檔根
- 19. 更改主機上的文檔根
- 20. 將子域名指向cPanel主站點的根目錄
- 21. GoDaddy的虛擬主機根目錄
- 22. 引用到網站根目錄之前
- 23. 未經授權的網站根目錄
- 24. 檢查網站根目錄中的cookie
- 25. PHP獲取網站的根目錄
- 26. 使用mod_rewrite重寫網站根目錄
- 27. 網站根目錄:Github Pages vs.`jekyll --server`
- 28. css中的網站根目錄翻譯
- 29. 在Javascript中獲取網站根目錄
- 30. asp.net更改網站根目錄
我接受了您的解決方案,因爲它引發了與我的主持人之間的關於我是否可以安全使用SERVER_NAME的對話。 – SorcyCat 2010-01-22 15:25:20