Làm cách nào tôi có thể sử dụng DocumentRoot và trạng thái máy chủ trong máy chủ ảo Apache?


8

Tôi có thiết lập máy chủ ảo này là lần đầu tiên trong danh sách các máy chủ ảo. Nó là

<VirtualHost localhost:80>
ServerName localhost
DocumentRoot "/www/drupal5"

<Location /server-status>
    SetHandler server-status
    Order Deny,Allow
    Allow from localhost
</Location>
</VirtualHost>

Phần còn lại của máy chủ ảo nằm bên dưới và được biểu thị là *: 80.

Khi tôi đưa DocumentRoot vào máy chủ ảo này, các yêu cầu trên máy chủ phải http://localhost/server-statusluôn nhấn /index.php thông qua các quy tắc viết lại trong /www/drupal5/.htaccess. Nếu tôi xóa khai báo DocumentRoot, / yêu cầu trạng thái máy chủ hoạt động tốt, nhưng sau đó trang web hoàn toàn không khả dụng http://localhost/.

Làm thế nào tôi có http://localhost/server-statusthể làm việc cũng như trang web để tải tại http://localhost/?


Bạn có thể đăng nội dung của /www/drupal5/.htaccess? Hy vọng rằng, có thể sửa đổi các quy tắc viết lại để các yêu cầu cho / trạng thái máy chủ không được viết lại.
Steven Thứ Hai

Sự làm rõ mà tôi nghĩ rằng tôi cần là: mod_rewrite có thể ghi đè lên những gì xảy ra với đường dẫn / trạng thái máy chủ ngay cả khi nó được xử lý trong <Location>

Câu trả lời:


12

Tìm thấy giải pháp khi tôi googled 'trạng thái máy chủ mod_rewrite'. Thật trùng hợp, nó đã được trả lời trong một diễn đàn drupal: http://drupal.org/node/52511

Thêm RewriteCond %{REQUEST_URI} !=/server-statusvào quy tắc viết lại để chuyển hướng tất cả lưu lượng truy cập đến /index.php đã sửa nó.

Rất khó hiểu rằng mod_rewrite có thể viết lại một uri đã được thiết lập một trình xử lý.


Cảm ơn, nó hoạt động!
Luke Duda

3

Nếu bạn đang sử dụng Apache 2.3 trở lên, bạn cũng có thể sử dụng ENDcờ trong mục Virtualhost của mình, để tiết kiệm phải sửa đổi các tệp .htaccess.

RewriteCond %{REQUEST_URI} /server-status
RewriteRule ^ - [END]

Nên ngăn chặn các quy tắc tiếp theo viết lại mọi thứ.


3

Chỉ cần thêm một mục vhost trống vào đầu tệp cấu hình vhost, vd

<VirtualHost *:80>
</VirtualHost>

2
Làm thế nào nó sẽ giải quyết câu hỏi ban đầu?
Pothi Kalimuthu

Apache đang mặc định cho các OP có tên vhost đầu tiên, cài đặt Drupal của họ, thay vì đi đến trang trạng thái máy chủ. Một vhost trống sẽ ngăn quá trình xử lý cho / trạng thái máy chủ được gửi đến Drupal và cho phép trang trạng thái tải
xref
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.