Quy tắc mod_Rewrite để kiểm tra nhiều vị trí thư mục cho một tệp nhất định là gì. Ví dụ, nếu tôi có một cấu trúc thư mục của:Cách sử dụng mod_Rewrite để kiểm tra nhiều thư mục cho một tệp tĩnh
public/
css/
library1/
css/
library2/
css/
và tôi muốn yêu cầu /css/somefile.css
đầu tiên kiểm tra các thư mục public/css/
, sau đó thác để public/library1/css/
sau đó public/library2/css/
, trả lại 404 nếu một tài sản không thể được tìm thấy trong bất kỳ các thư mục.
Tôi đã suy nghĩ dọc theo dòng:
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond library1%{REQUEST_URI} -f
RewriteRule ^(.*)$ library1$1 [L]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond library2%{REQUEST_URI} -f
RewriteRule ^(.*)$ library2$1 [L]
Nhưng điều này dường như không làm việc - Tôi không chắc chắn làm thế nào để kiểm tra sự tồn tại của tập tin trên một con đường tạo động.
Chúc mừng cho điều đó - Tôi không nhận ra sự% Biến {DOCUMENT_ROOT} khi đọc tài liệu. – DavidWinterbottom
@DavidWinterbottom: Bạn cần đường dẫn hệ thống tệp tuyệt đối khi bạn muốn kiểm tra các tệp hiện có, thư mục, v.v. * YÊU CẦU \ _FILENAME * đã chứa đường dẫn hệ thống tệp tuyệt đối nhưng * REQUEST \ _URI * chỉ đường dẫn URL tuyệt đối. – Gumbo
@Gumbo: không nên tham chiếu dòng 6 'library2'? –