Tôi có một bộ quy tắc viết lại (trong một .htaccess) một cái gì đó như thế này:Không thể phù hợp% 2F trong mod_rewrite
RewriteRule ^list/vendor/(.*)$ list.php?vendor=$1
RewriteRule ^list/product/(.*)$ list.php?product=$1
RewriteRule ^list/(.*)$ list.php?search=$1
(Tôi không nghĩ rằng lần đầu tiên hai có liên quan đến câu hỏi của tôi, mặc dù) .
Khi tôi gõ vào myserver.com/list/foo%2Cbar
hoặc thậm chí myserver.com/list/foo/bar
, tôi nhận được kết quả tôi mong đợi: list.php được gọi với foo,bar
và foo/bar
trong $_GET['search']
.
Nhưng nếu tôi nhập myserver.com/list/foo%2Fbar
, có vẻ như quy tắc không khớp! Thay vào đó, tôi gặp lỗi 404. Điều gì có thể xảy ra ở đây? Apache 2.2.14, nếu nó quan trọng.
(Tôi đã thử trong Firefox và Chrome, cùng một kết quả - nhưng tất nhiên là nó có thể là trình duyệt đang hoạt động).
Có thể nào Apache thậm chí không nhìn vào tệp .htaccess của tôi trong trường hợp này? Đó sẽ là một lỗi, tôi đoán ... – LHMathies
Nhật ký lỗi chứa (ở mức thông tin): 'tìm thấy% 2f (được mã hóa '/') trong URI ... trả về 404' – cweiske