2010-12-27 20 views
24

Làm thế nào tôi có thể có thiết lập sau trong apache?Apache nhiều DocumentRoot

http://server/ABC/* nên được phục vụ bởi /var/www/ABC/*

http://server/PQR/* nên được phục vụ bởi /var/www/PQR/*

Mỗi yêu cầu khác nên được phục vụ bởi /var/www/Others/index.php (một tập tin duy nhất).

Cảm ơn,

JP

+2

Đối với phần đầu tiên của câu hỏi: [Bí danh] (http://httpd.apache.org/docs/current/mod/mod_alias.html#alias) ('Bí danh/ABC/var/www/ABC 'vv) Rời DocumentRoot thành/var/www/Others/ – plundra

Trả lời

1

Bạn có thể làm điều này với mod_alias, mà là một phần của sự phân bố apache.

http://httpd.apache.org/docs/current/mod/mod_alias.html

phục vụ mọi thứ khác với tập tin duy nhất bạn sẽ sử dụng mod_rewrite. Điều này có nhiều tính năng và tùy thuộc vào nhu cầu của bạn, bạn có thể cần phải chỉnh sửa .. nhưng một cái gì đó như thế này sẽ hoạt động:

RewriteEngine on 
RewriteRule ^(.*)$ /index.php?path=$1 [L] 

bạn sẽ đặt nó vào tệp .htaccess trong thư mục gốc tài liệu.

+0

Chỉ định tài liệu gốc vào index.php, nhưng đưa ra cảnh báo khi khởi động lại apache, nhưng * works *. Tôi đang nghĩ liệu có nên sử dụng đề xuất mod_rewrite hoặc Tabers hay không. –

23

Sử dụng Bí danh:

Alias /ABC/ /var/www/ABC/ 
Alias /PQR/ /var/www/PQR/ 

Rời khỏi trỏ gốc tài liệu để /var/www/Others/index.php. Nó có thể làm trò lừa. :)

+0

Điều này có thể được sử dụng để trỏ '/' vào một thư mục khác không? ví dụ. 'Bí danh// var/www/wordpress /'? – crmpicco

Các vấn đề liên quan