Tôi đã sử dụng quy tắc mod_rewrite đơn giản cho CMS của mình trong nhiều năm và hiện đang tạo phiên bản mới, tôi thấy rewriteCond không có ý nghĩa- Tôi có tiêu chuẩn "nếu không phải là tệp "nhưng tôi vẫn thấy những người viết lại được đánh giá mặc dù họ không được phép. đang viết lại tôi:.htaccess! -f quy tắc không hoạt động
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?page=$1
RewriteRule ^([^/]+)/([^/]+)$ index.php?page=$1&var=$2
tôi tải/trang/var và nó hoạt động tốt như page = trang & var = var index.php, nhưng tôi cố gắng để tải /css/file.css và nó tải index?. php? page = css & var = file.css mặc dù /css/file.css là một tệp, vì vậy toàn bộ phần viết lại không được đánh giá.
Tôi chưa bao giờ thấy htaccess rõ ràng thách thức logic của riêng mình, ai đó có thể giúp tôi tìm ra điều này không? Có ai từng trải qua bất cứ thứ gì như thế này không?
+1 cho công cụ RewriteLog, nó đã giúp tôi gỡ lỗi các quy tắc viết lại của mình. –