Cạm bẫy khác:
1- Đôi khi bạn nên tắt MultiView
Options -MultiViews
Tôi không hiểu rõ về tất cả các khả năng của MultiView, nhưng tôi biết rằng nó làm rối các quy tắc mod_rewrite của tôi khi hoạt động, bởi vì một trong những thuộc tính của nó là thử và 'đoán' một phần mở rộng cho một tệp mà nó cho rằng tôi đang tìm kiếm .
Tôi sẽ giải thích: Giả sử bạn có 2 tệp php trong web dir, file1.php và file2.php và bạn thêm các điều kiện và quy tắc này vào .htaccess của mình:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ file1.php/$1
Bạn giả sử rằng tất cả các url không khớp với một tệp hoặc một thư mục sẽ bị file1.php lấy. Sự ngạc nhiên! Quy tắc này không được áp dụng cho url http: // myhost / file2 / somepath . Thay vào đó, bạn được đưa vào bên trong file2.php.
Điều đang xảy ra là MultiViews tự động đoán rằng url mà bạn thực sự muốn là http: //myhost/file2.php/somepath và sẵn lòng đưa bạn đến đó.
Bây giờ, bạn không có manh mối gì vừa xảy ra và bạn đang đặt câu hỏi về mọi thứ mà bạn nghĩ rằng bạn đã biết về mod_rewrite. Sau đó, bạn bắt đầu chơi với các quy tắc để cố gắng hiểu logic đằng sau tình huống mới này, nhưng bạn càng thử nghiệm thì nó càng ít ý nghĩa hơn.
Ok, Tóm lại, nếu bạn muốn mod_rewrite hoạt động theo cách gần đúng với logic, thì việc tắt MultiViews là một bước đi đúng hướng.
2- bật FollowSymlinks
Options +FollowSymLinks
Cái đó, tôi không thực sự biết chi tiết, nhưng tôi đã thấy nó được đề cập nhiều lần, vì vậy cứ làm đi.