PHP lấy gốc web

Guide to URL paths...

Data: $_SERVER['PHP_SELF']
Data type: String
Purpose: The URL path name of the current PHP file, including path-info (see $_SERVER['PATH_INFO']) and excluding URL query string. Includes leading slash.
Caveat: This is after URL rewrites (i.e. it's as seen by PHP, not necessarily the original call URL).
Works on web mode: Yes
Works on CLI mode: Tenuous (emulated to contain just the exact call path of the CLI script, with whatever exotic relative pathname you may call with, not made absolute and not normalised or pre-resolved)

________số 8

Data: $_SERVER['REDIRECT_URL']
Data type: String
Purpose: The URL path name of the current PHP file, path-info is N/A and excluding URL query string. Includes leading slash.
Caveat: This is before URL rewrites (i.e. it's as per the original call URL).
Caveat: Not set on all PHP environments, and definitely only ones with URL rewrites.
Works on web mode: Yes
Works on CLI mode: No

function webRoot() { return str_replace( $_SERVER['PHP_SELF'], '', /* correct for windows slashes */ str_replace('\\\\','/',__FILE__) ); } 0

function webRoot() { return str_replace( $_SERVER['PHP_SELF'], '', /* correct for windows slashes */ str_replace('\\\\','/',__FILE__) ); } 1

function webRoot() { return str_replace( $_SERVER['PHP_SELF'], '', /* correct for windows slashes */ str_replace('\\\\','/',__FILE__) ); } 2

Trong Apache, bạn xác định đường dẫn đến vhost của mình, chẳng hạn như /var/www/vhosts/MySite. com/httpdocs/ và /var/www/vhosts/YourSite. com/httpdocs/

Đây là gốc trang web của bạn, hãy nhập MySite. com và bạn sẽ được chuyển đến MySite. com.
Tôi đoán rằng trong các chỉ thị của Apache, bạn có một máy chủ DEV để thử các tập lệnh trước khi đưa vào vhost.

Cả /Users/user1/Documents/DEV/++htdocs/03_MySite/ và /var/www/vhosts/MySite. com/httpdocs/ xác định các gốc web khác nhau

Thông thường /var/www/vhosts/MySite. com/httpdocs/ sẽ là những gì khách truy cập nhìn thấy khi họ truy cập trang web của tôi. com

/Users/user1/Documents/DEV/++htdocs/03_MySite/ có thể được truy cập theo nhiều cách tùy thuộc vào httpd của Apache. conf, đây là nơi bạn phát triển trang web của mình trước khi tải lên trang web trực tiếp

Về cơ bản với Apache, bạn có thể có nguồn gốc web không giới hạn như được xác định bởi chỉ thị máy chủ ảo

Tôi không biết bạn đang cố nói gì và điều đó không trả lời câu hỏi của tôi, nhưng dù sao cũng cảm ơn.

Debbie

DoubleDee

Bạn sẽ gọi chung một trong hai thứ này là gì…

'/Users/user1/Documents/DEV/++htdocs/03_MySite/' '/var/www/vhosts/MySite.com/httpdocs/');

Gốc là điểm bắt đầu hình thành cành

Thư mục gốc là thư mục chính chứa tất cả các thư mục/tệp con khác. Đó là điểm cao nhất trong hệ thống phân cấp. Khi một thư mục gốc chứa các thư mục con, nó có thể được gọi là cây thư mục

Thư mục gốc của web là thư mục có thể truy cập công khai trên Internet. Nó thường có một số loại trang chỉ mục/trang mặc định, nhưng nó chắc chắn không phải là một yêu cầu

Mỗi tên miền/tên miền phụ có gốc web riêng. Đối với một miền cụ thể nơi trang web/trang web được lưu trữ, thư mục gốc của trang web có thể được đặt tên theo nhiều thứ khác nhau, tùy thuộc vào cách máy chủ lưu trữ được định cấu hình, chẳng hạn như

  • htdocs
  • www
  • wwwroot
  • httpdocs
  • http_public

Đối với MySite của bạn. com, thư mục httpdocs là thư mục gốc của tên miền đó

Đối với khách truy cập, họ không bao giờ thấy tên thư mục gốc của web hoặc vị trí của thư mục gốc web trên máy chủ. Họ chỉ có quyền truy cập vào nội dung của thư mục gốc của web sau khi truy cập miền (hoặc địa chỉ IP, trong một số trường hợp)

Chỉ cần làm rõ (dường như mọi người luôn giải thích về nó) root web chỉ đơn giản là thư mục vật lý trên hệ điều hành máy chủ mà máy chủ HTTP của bạn đang coi là root (/) cho tên miền

Cách đây một thời gian, tôi cần root web trên một máy chủ không cung cấp nó… vì vậy tôi đã viết một số PHP để tìm ra nó. Do đó, chủ yếu là vấn đề chỉ tước FILE từ cuối $_SERVER[‘PHP_SELF’]

function webRoot() { return str_replace( $_SERVER['PHP_SELF'], '', /* correct for windows slashes */ str_replace('\\\\','/',__FILE__) ); }

Chương trình thử nghiệm nhỏ đơn giản

echo '<pre> PHP_SELF : ',$_SERVER['PHP_SELF'],' __FILE__ : ',__FILE__,' Web Root : ',webRoot(),' </pre>';

Để hiển thị nó trong thực tế.. hãy chạy trên XAMPP trên máy win7 của tôi. Tôi lấy cái này để xuất

PHP_SELF : /webRoot.php __FILE__ : C:\\web\\webRoot.php Web Root : C:/web

Lưu ý dấu gạch chéo đảo ngược… Windows sử dụng dấu gạch chéo ngược lại của thế giới *nix đôi khi có thể gây khó chịu

Chạy từ máy chủ cũ của tôi (debian+ISPConfig)

PHP_SELF : /webRoot.php __FILE__ : /var/www/web3/web/webRoot.php Web Root : /var/www/web3/web

Chạy từ vị trí lưu trữ mới của tôi (freeBSD, nginx có chuyển qua apache)

PHP_SELF : /webRoot.php __FILE__ : /home/cutcodedown/public_html/webRoot.php Web Root : /home/cutcodedown/public_html

Với việc nó thay đổi từ máy chủ này sang máy chủ khác và hệ điều hành này sang hệ điều hành khác và thậm chí cả *nix distro thành *nix distro, tốt nhất bạn nên lấy giá trị một cách tự động bằng một tập lệnh như thế này… vấn đề duy nhất là, một số thiết lập php bị lỗi không báo cáo . Cũng phải cẩn thận vì một số quy tắc mod_rewrite cũng có thể làm hỏng nó

Ồ, về lý thuyết, đây phải là công việc của $_SERVER[‘DOCUMENT_ROOT’], nhưng nó trả về thư mục con hiện đang được chạy từ đó, chứ không phải thư mục gốc của máy chủ http thực tế… và nếu các tệp cấu hình php bị đặt sai, nó sẽ xuất ra toàn bộ thông tin vô nghĩa không đáng tin cậy. Tôi chưa bao giờ có thể sử dụng giá trị do DOCUMENT_ROOT trả về một cách có ý nghĩa

Ngay cả khi nó hoạt động bình thường, nó cũng không trả về web root mà chỉ trả về doc root… bạn chạy nó trong \web\ est\webroot. php DOCUMENT_ROOT đôi khi sẽ trả về \web, đôi khi trả về \web\ est, đôi khi trả về \, đôi khi không trả lại gì cả, và tôi đã thấy nó đôi khi trả về toàn tiếng vô nghĩa giống như một hàm băm được tạo ngẫu nhiên

Làm cách nào để lấy URL gốc trong PHP?

$pathInPieces = phát nổ('/', $_SERVER['DOCUMENT_ROOT']); . This will output the server's root directory.

Web root trong PHP là gì?

Gốc tài liệu PHP là thư mục chứa tập lệnh PHP đang chạy . Khi cài đặt một tập lệnh, các nhà phát triển web thường cần biết gốc của tài liệu. Mặc dù nhiều trang viết bằng PHP chạy trên máy chủ Apache, một số trang chạy dưới Microsoft IIS trên Windows.

Thư mục gốc PHP ở đâu?

Chắc chắn, đường dẫn gốc PHP được lưu trữ trên phần tử “DOCUMENT_ROOT” của mảng $_SERVER . Do đó, truy cập phần tử đã cho sẽ trả về chính xác đường dẫn thư mục mẹ. Ngoài ra, tốt nhất nên lưu ý rằng phần tử $DOCUMENT_ROOT được xác định trong tệp cấu hình của máy chủ.

$_ máy chủ [' DOCUMENT_ROOT '] là gì?

$_ máy chủ DOCUMENT_ROOT trong PHP là gì? . Thư mục gốc của tài liệu mà tập lệnh hiện tại đang thực thi, như được xác định trong tệp cấu hình của máy chủ . 15-Nov-2012.

Chủ đề