กับ ดัชนีตัวเลือก
และ เขียนซ้ำ LogLevel:trace6
ฉันเห็นว่ากฎการเขียนซ้ำของฉันใช้กับไฟล์ทั้งหมดในไดเร็กทอรีที่อยู่ในรายการ มันยังเข้าไปในไดเร็กทอรีย่อยและค้นหา index.html
. สิ่งนี้ไม่ดีต่อประสิทธิภาพ สิ่งนี้จำเป็นจริงๆหรือ? จะปิดการใช้งานได้อย่างไร? ในการกำหนดค่าจริงฉันมี "prg" เขียนแผนที่ใหม่
และโปรแกรมนี้รับไฟล์ที่แสดงรายการทั้งหมดบน STDIN
ปัญหาสามารถทำซ้ำได้ด้วยการกำหนดค่าขั้นต่ำนี้:
สิ่งแวดล้อม:
- OpenSUSE วัชพืช
- apache2-2.4.51-1.1.x86_64
การกำหนดค่า:
/etc/apache2/conf.d/test.conf
(ดูด้านล่าง httpd.conf เต็ม)
LoadModule rewrite_module /usr/lib64/apache2/mod_rewrite.so
ดีบัก LogLevel เขียนใหม่:trace6
<ไดเรกทอรี "/srv/www/htdocs/test">
ดัชนีตัวเลือก FollowSymLinks
RewriteEngine เปิดอยู่
RewriteRule badrule ไม่เคยเกิดขึ้น
</ไดเร็กทอรี>
คำสั่ง:
mkdir /srv/www/htdocs/test
สัมผัส /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzz{a..z}
systemctl รีสตาร์ท apache2
หาง -F /var/log/apache2/error_log &
ขด -s -o /dev/null http://localhost/test/
เอาท์พุต:
[rid#556dab9a2060/initial] [perdir /srv/www/htdocs/test/] แถบคำนำหน้า per-dir: /srv/www/htdocs/test/ ->
[rid#556dab9a2060/initial] [perdir /srv/www/htdocs/test/] ใช้รูปแบบ 'badrule' กับ uri ''
[rid#556dab9a2060/initial] [perdir /srv/www/htdocs/test/] ผ่าน /srv/www/htdocs/test/
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] แถบคำนำหน้า per-dir: /srv/www/htdocs/test/index.html -> index.html
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ใช้รูปแบบ 'badrule' กับ uri 'index.html'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ผ่าน /srv/www/htdocs/test/index.html
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] แถบคำนำหน้า per-dir: /srv/www/htdocs/test/index.html.var -> index.html.var
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ใช้รูปแบบ 'badrule' กับ uri 'index.html.var'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ผ่าน /srv/www/htdocs/test/index.html.var
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] แถบคำนำหน้า per-dir: /srv/www/htdocs/test/HEADER.html -> HEADER.html
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ใช้รูปแบบ 'badrule' กับ uri 'HEADER.html'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ผ่าน /srv/www/htdocs/test/HEADER.html
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] แถบคำนำหน้า per-dir: /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzza -> zzzzzzzzzzzzzzzzzzza
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ใช้รูปแบบ 'badrule' กับ uri 'zzzzzzzzzzzzzzzzzzzzza'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ผ่าน /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzza
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] แถบคำนำหน้า per-dir: /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzzb -> zzzzzzzzzzzzzzzzzzzzb
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ใช้รูปแบบ 'badrule' กับ uri 'zzzzzzzzzzzzzzzzzzzzzzb'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ผ่าน /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzb
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] แถบคำนำหน้า per-dir: /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzzc -> zzzzzzzzzzzzzzzzzzzzc
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ใช้รูปแบบ 'badrule' กับ uri 'zzzzzzzzzzzzzzzzzzzzzzc'
[rid#556dab9a8090/subreq] [perdir /srv/www/htdocs/test/] ผ่าน /srv/www/htdocs/test/zzzzzzzzzzzzzzzzzzzzzc
...
เต็ม httpd.conf
:
# sudo -u ไม่มีใคร /sbin/httpd -d /etc/httpd-test -f /etc/httpd-test/httpd.conf -DFOREGROUND
#
# สิ่งต่อไปนี้ไม่จำเป็นสำหรับ SUSE
LoadModule mpm_event_module โมดูล/mod_mpm_event.so
#โหลดโมดูล mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
# สิ่งต่อไปนี้ไม่จำเป็นสำหรับ SUSE
LoadModule unixd_module โมดูล/mod_unixd.so
LoadModule authz_core_module โมดูล/mod_authz_core.so
LoadModule autoindex_module โมดูล/mod_autoindex.so
LoadModule rewrite_module โมดูล/mod_rewrite.so
บันทึกข้อผิดพลาด "|/bin/cat"
ดีบัก LogLevel เขียนใหม่:trace6
PidFile /dev/shm/httpd-test.pid
ชื่อเซิร์ฟเวอร์ localhost
ฟัง 8080
รากเอกสาร "/srv/www/htdocs"
<ไดเรกทอรี "/srv/www/htdocs/test">
ต้องได้รับอนุญาตทั้งหมด
ดัชนีตัวเลือก FollowSymLinks
RewriteEngine เปิดอยู่
RewriteRule badrule ไม่เคยเกิดขึ้น
</ไดเร็กทอรี>