Với Chỉ mục tùy chọn
và LogLevel viết lại: dấu vết6
Tôi thấy rằng quy tắc viết lại của tôi được áp dụng cho tất cả các tệp trong thư mục được liệt kê. Nó thậm chí còn đi vào bên trong các thư mục con và tìm kiếm index.html
. Điều này là xấu cho hiệu suất. Điều này có thực sự cần thiết? Làm thế nào để vô hiệu hóa nó? Trong cấu hình thực tế, tôi có một "prg" Viết lạiBản đồ
và chương trình này nhận tất cả các tệp được liệt kê trên STDIN của nó.
Vấn đề có thể tái tạo với cấu hình tối thiểu này:
Môi trường:
- OpenSUSE Tumbleweed
- apache2-2.4.51-1.1.x86_64
Cấu hình:
/etc/apache2/conf.d/test.conf
(xem bên dưới toàn bộ httpd.conf)
LoadModule rewrite_module /usr/lib64/Apache2/mod_rewrite.so
Gỡ lỗi LogLevel viết lại: dấu vết6
<Thư mục "/srv/www/htdocs/test">
Tùy chọn Chỉ mục FollowSymLinks
RewriteEngine bật
RewriteRule quy tắc xấu không bao giờ xảy ra
</Thư mục>
Lệnh:
mkdir /srv/www/htdocs/test
chạm /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzz{a..z}
systemctl khởi động lại apache2
đuôi -F /var/log/Apache2/error_log &
cuộn tròn -s -o /dev/null http://localhost/test/
Đầu ra:
[rid#556dab9a2060/initial] [perdir /srv/www/htdocs/test/] dải tiền tố per-dir: /srv/www/htdocs/test/ ->
[rid#556dab9a2060/initial] [perdir /srv/www/htdocs/test/] áp dụng mẫu 'badrule' cho uri ''
[rid#556dab9a2060/initial] [perdir /srv/www/htdocs/test/] chuyển qua /srv/www/htdocs/test/
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] dải tiền tố per-dir: /srv/www/htdocs/test/index.html -> index.html
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] áp dụng mẫu 'badrule' cho uri 'index.html'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] chuyển qua /srv/www/htdocs/test/index.html
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] dải tiền tố per-dir: /srv/www/htdocs/test/index.html.var -> index.html.var
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] áp dụng mẫu 'badrule' cho uri 'index.html.var'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] chuyển qua /srv/www/htdocs/test/index.html.var
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] dải tiền tố per-dir: /srv/www/htdocs/test/HEADER.html -> HEADER.html
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] áp dụng mẫu 'badrule' cho uri 'HEADER.html'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] chuyển qua /srv/www/htdocs/test/HEADER.html
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] dải tiền tố per-dir: /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzzz -> zzzzzzzzzzzzzzzzzzzzzzz
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] áp dụng mẫu 'badrule' cho uri 'zzzzzzzzzzzzzzzzzzzzzzz'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] chuyển qua /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzz
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] dải tiền tố per-dir: /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] áp dụng mẫu 'badrule' cho uri 'zzzzzzzzzzzzzzzzzzzzzzzzb'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] chuyển qua /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzzzzb
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] dải tiền tố per-dir: /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzzc -> zzzzzzzzzzzzzzzzzzzzzzzc
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] áp dụng mẫu 'badrule' cho uri 'zzzzzzzzzzzzzzzzzzzzzzzc'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] chuyển qua /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzzzc
...
Đầy httpd.conf
:
# sudo -u không ai /sbin/httpd -d /etc/httpd-test -f /etc/httpd-test/httpd.conf -DFOREGROUND
#
# Điều sau đây không cần thiết trên SUSE
LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mô-đun mpm_prefork_module/mod_mpm_prefork.so
#LoadModule mô-đun mpm_worker_module/mod_mpm_worker.so
# Điều sau đây không cần thiết trên SUSE
LoadModule mô-đun unixd_module/mod_unixd.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule mô-đun autoindex_module/mod_autoindex.so
LoadModule mô-đun rewrite_module/mod_rewrite.so
Nhật ký lỗi "|/bin/cat"
Gỡ lỗi LogLevel viết lại: dấu vết6
PidFile /dev/shm/httpd-test.pid
Tên máy chủ localhost
Nghe 8080
DocumentRoot "/srv/www/htdocs"
<Thư mục "/srv/www/htdocs/test">
Yêu cầu tất cả cấp
Tùy chọn Chỉ mục FollowSymLinks
RewriteEngine bật
RewriteRule quy tắc xấu không bao giờ xảy ra
</Thư mục>