Tôi đang tìm một bộ quy tắc mod_rewrite chung (không phụ thuộc vào máy chủ) để thực hiện kiểm tra HTTP_REFERER trên tài nguyên. Tôi đã đưa ra những điều sau đây có vẻ trực quan, nhưng đáng tiếc là không hoạt động:Generic mod_rewrite referrer check
RewriteCond %{HTTP_REFERER} !^https?://%{HTTP_HOST}/.*
# RewriteRule .* - [F] # <- or whatever
Dường như bạn không thể có một biến trên cả hai mặt của so sánh. Vì vậy, một hack:
RewriteCond %{HTTP_HOST}##%{HTTP_REFERER} !^([^#]*)##https?://\1/.*
Nhưng wow, đó là xấu xí - và nếu bạn không biết chính xác những gì đang xảy ra, nó gây nhầm lẫn khủng khiếp.
Có cách nào tốt hơn (sạch) hơn để viết các quy tắc này không?
có vẻ khá phức tạp để làm điều đó với rewriteCond. Có lẽ mod_macro sẽ là một cách khác để suy nghĩ vấn đề của các quy tắc độc lập với máy chủ. – regilero