Tôi đã thiết lập máy chủ ảo của mình trên Apache 2.4.7 với cấu hình rất cơ bản:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /var/www/html
DirectoryIndex index.php
FallbackResource /index.php
</VirtualHost>
Bên dưới gốc tài liệu tôi có cấu trúc như sau:
/index.php
/help/readme.txt
Tôi nhận được kết quả sau khi tôi yêu cầu:
/bla -> 200 OK
/help/ -> 404 Not Found
/help/a -> 200 OK
Có vẻ như sự tồn tại của /help/thư mục đang khiến Apache quay trở lại 404vì không có index.phptrong đó, nhưng tôi hy vọng tất cả các yêu cầu sẽ được gọi /index.phpvà do đó mang lại 200 OKphản hồi.
Tôi không nhớ đây là một vấn đề khi sử dụng mod_rewrite, nhưng tôi thích sử dụng FallbackResourcenếu có thể. Có cách nào để sửa lỗi này?
Cập nhật
Nó hoạt động nếu tôi loại bỏ DirectoryIndexchỉ thị, nhưng nó bị các vấn đề chậm trễ năm giây .
Cập nhật 3
Tôi đang chạy môi trường thử nghiệm sau; cấu trúc thư mục như sau:
./htdocs
index.html
test/
bla.txt
./conf
httpd.conf
./logs
Nội dung của httpd.conflà:
ServerName apache-bug.local
Listen 8085
DirectoryIndex disabled
DirectorySlash Off
<VirtualHost *:8085>
DocumentRoot /home/user/apache-bug/htdocs
FallbackResource /index.html
</VirtualHost>
Của tôi config.nicechứa:
"./configure" \
"--enable-debugger-mode" \
"--with-apr=/usr/local/apr/bin/apr-1-config" \
"--enable-dir=static" \
"--with-mpm=prefork" \
"--enable-unixd=static" \
"--enable-authn-core=static" \
"--enable-authz-core=static" \
"$@"
Để chạy máy chủ:
httpd -X -d /home/user/work/apache-bug/
/bla?