2010-01-01 5 views
5

Tôi cần dừng danh sách thư mục của thư mục hình ảnh trên trang web. Tôi đang cấu hình miền cookieless cho hình ảnh và javascripts trên một trang web. Tôi đã thực hiện cấu hình CNAME và được thêm vào dưới cấu hình máy chủ ảo trong tệp httpd.conf. Tuy nhiên, nếu tôi truy cập miền cookieless này trực tiếp, nó liệt kê toàn bộ nội dung thư mục. Làm thế nào để giải quyết vấn đề này?Tùy chọn Apache -Cập hình cấu hình không hoạt động

 
<VirtualHost ipaddr:80> 
    ServerAdmin [email protected] 
    ServerName imgs.site.com 
    ServerAlias www.imgs.site.com 
    DocumentRoot /usr/tomcat/webapps/site/images 

    <Directory /usr/tomcat/webapps/site/images> 
     Options -Indexes FollowSymLinks 
     AllowOverride none 
    </Directory> 

    CustomLog logs/imgs.site.com_access_log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 
    ErrorLog logs/imgs.site.com_error_log 
</VirtualHost> 

<VirtualHost ipaddr:80> 
    ServerAdmin [email protected] 
    ServerName imgs.site.com 
    ServerAlias www.imgs.site.com imgs.site.net 
    DocumentRoot /usr/tomcat/webapps/site/images 

    <Directory /usr/tomcat/webapps/site/images> 
     Options -Indexes FollowSymLinks 
     AllowOverride none 
    </Directory> 

    CustomLog logs/imgs.site.com_access_log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 
    ErrorLog logs/imgs.site.com_error_log 
</VirtualHost> 

Trả lời

1

Cách giải quyết nhanh là đặt một tệp index.html vào thư mục, với nội dung tùy ý. Lập chỉ mục sẽ hiển thị nội dung của tệp này thay vì danh sách thư mục.

7

Tôi nghĩ rằng đường dẫn trong chỉ thị Directory được nối vào DocumentRoot, vì vậy bạn thực sự yêu cầu Apache không lập chỉ mục /usr/tomcat/webapps/site/images/usr/tomcat/webapps/site/images. Hãy thử cấu hình sau để thay thế:

DocumentRoot /usr/tomcat/webapps/site 

<Directory ~ "/.*/"> 
    Options -Indexes 
</Directory> 

Điều này sẽ tắt tính năng lập chỉ mục thư mục trong tất cả các thư mục theo /usr/tomcat/webapps/site, ví dụ: /usr/tomcat/webapps/site/images/, /usr/tomcat/webapps/site/fubar/ và cứ tiếp tục như vậy.

+2

> Tôi nghĩ rằng con đường trong Chỉ thị 'Directory' được thêm vào' DocumentRoot' << Có vẻ như tôi đã sai: "Đường dẫn thư mục" hoặc là đường dẫn đầy đủ * tới một thư mục, hoặc một chuỗi thẻ hoang dã sử dụng kết hợp kiểu vỏ Unix "(http://httpd.apache.org/docs/2.2/mod/core.html#directory). Vì vậy, ví dụ của tôi chỉ hoạt động vì nó khớp với * mọi thư mục * trong máy chủ. – hudolejev

1
Options -Indexes FollowSymLinks 

Từ Apache 2.0 và Apache 2.2 docs:

Cảnh báo
Trộn Options với a + hoặc - với những người không phải là cú pháp hợp lệ, và có khả năng gây bất ngờ các kết quả.

Trong Apache 2.4 này sẽ ...

... từ chối trong máy chủ khởi động bằng cách kiểm tra cú pháp với một hủy bỏ.

Vì vậy, về cơ bản bạn cần một + trước FollowSymLinks (hoặc loại bỏ các - trước Indexes nếu bạn muốn override chỉ thị trước.):

Options -Indexes +FollowSymLinks 
+0

Tôi tự hỏi Nếu nó là cần thiết để sử dụng '-Indexes' nếu chúng ta không muốn lập chỉ mục thư mục thực hiện. chúng ta không thể KHÔNG BAO GỒM các chỉ mục? và có các tùy chọn như sau: 'Options FollowSymLinks' –