2011-01-26 23 views
5

Tôi muốn ngăn truy cập url trực tiếp vào một số thư mục được chọn. Nhưng sau đó tạo một vài tệp bên trong các thư mục đã chọn có thể truy cập để truy cập url trực tiếp. Tôi gặp sự cố khi viết phần < filesmatch> để cho phép truy cập vào tệp .php bên trong thư mục "xml /". Tôi muốn bao gồm một phần của "đường dẫn" trong chỉ thị filesmatch, thay vì tạo riêng biệt < directorymatch> chỉ thị cho mỗi thư mục tôi muốn một số tệp sẵn có, nhưng nó không hoạt động ... hoạt động nếu tôi xóa "/xml/"và đặt <FilesMatch "\.(php)$">apache filesmatch trợ giúp chỉ thị. Bạn muốn bao gồm "đường dẫn/đến/tệp" nhưng không hoạt động đúng

Trong httpd.conf của tôi, tôi đã thiết lập một thư mục ảo. Bên trong thư mục ảo tôi đã thêm thông tin sau:

<DirectoryMatch "^/data/servers/dev.site.com/web/administrator/(includes|xml|css|javascript|stylesheet|cache|classes|acco 
unt_files)"> 
     AddType application/x-httpd-php .php .html .htm 
     Options none 
     AllowOverride All 
     Order Deny,Allow 
     Deny from all 


     #Target all files in "xml/" directory that end in ".php" 
     <FilesMatch "/xml/\.(php)"> 
       AddType application/x-httpd-php .php 
       Order Allow,Deny 
       Allow from all 
     </FilesMatch> 

</DirectoryMatch> 

Bất kỳ ai cũng biết cách viết bài này?

Cảm ơn sự giúp đỡ.

Trả lời

8

FilesMatch hoạt động hoàn toàn trên tên tệp - nó hoàn toàn không nhìn vào phần đường dẫn, vì vậy bạn sẽ không bao giờ nhận được '/ xml /' trong tên tệp trong khối TệpMatch. Đó là lý do tại sao có DirectoryMatch ở trên. Phù hợp với thư mục ở đó, sau đó khớp tên tệp trong dirmatch.

+0

ah, cảm ơn bạn đã chỉ ra điều đó – Ronedog

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