2013-06-25 58 views
13

Trong khi tôi có thể bật Ghi nhật ký ghi đè và gây rối với quy tắc này để tìm hiểu xem nó làm gì (nếu có), tôi đặt cược ai đó đã biết. Dưới đây là các quy tắc của bản thân:RewriteRule^- [L] AKA RewriteRule dấu gạch ngang dấu gạch ngang L

RewriteRule^- [L] 

Dưới đây là trong bối cảnh:

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

Tôi đoán nó có nghĩa là "trận đấu Everything". Tôi đã nghĩ rằng "Kết hợp mọi thứ" sẽ là một dấu chấm để làm cho nó rõ ràng hơn rằng không có mã thiếu, và regexp đó sẽ lỗi ra nếu caret là điều duy nhất trong đó. Vì vậy, tôi thấy cơ hội bên ngoài rằng nó có nghĩa là cái gì khác.

Trả lời

16
  • ^ là một cách hơi không chính thống nói "phù hợp với bất cứ điều gì", cũng giống như bạn nói
  • - có nghĩa là "không có hành động"
  • [L] có nghĩa là "quy tắc cuối cùng" tức là ngừng xử lý RewriteRules sau thời điểm này

Tôi giả sử có các quy tắc khác sau quy tắc này, vì sự kết hợp này của RewriteCond/RewriteRule cho biết rằng nếu yêu cầu hiện tại là cho hiện có tệp hoặc thư mục, mod_rewrite nên bỏ qua bất kỳ sau RewriteRules nào.


Thể hiện trong mã, đây sẽ là tương đương với:

do_rewrites(req) 
{ 
    if (is_file(req) || is_dir(req)) 
    return; 

    // other rules 
    ... 
} 
Các vấn đề liên quan