Ghi đè có hai phần. Phần đầu tiên xác định rằng nếu tên tệp được yêu cầu là tệp thông thường có kích thước lớn hơn 0 (-s
), liên kết tượng trưng (-l
) hoặc thư mục (-d
), viết lại thành hư không, ví dụ: không hành động. [NC,L]
có nghĩa là quy tắc không phân biệt chữ hoa chữ thường và quy tắc cuối cùng phù hợp với các điều kiện này.
Tất cả các yêu cầu khác được chuyển tiếp đến /vote/public/index.php
.
Mục đích của việc viết lại này là một tệp hiện có, thực tế có thể được tìm nạp từ máy chủ mà không bị nhiễu. Nếu không có quy tắc đầu tiên, mọi yêu cầu tệp (tệp css và js, hình ảnh, v.v.) sẽ chuyển đến index.php
sẽ làm mọi thứ trở nên tồi tệ.
Thông thường, điều này được viết trong một tuyên bố. Bạn có thể từ chối các điều kiện và sau đó, các statemens [OR]
cũng có thể được lấy ra:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /vote/public/index.php [NC,L]
Điều này tương đương với tuyên bố ban đầu.
Nguồn
2010-01-15 20:24:26
@Tatu Ulmanen: bạn có thể giải thích ý nghĩa của 'RewriteCond% {REQUEST_FILENAME} -f' không? nó chỉ là "kích thước" mà các tùy chọn '-s' và' -f' khác nhau? Và cũng có những gì sẽ là tập tin thường xuyên (không nhị phân?)? –