Score:1

RewriteRule ใช้กับไฟล์ทั้งหมดระหว่างการแสดงรายการไดเร็กทอรี

ธง vn

กับ ดัชนีตัวเลือก และ เขียนซ้ำ 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 ไม่เคยเกิดขึ้น
</ไดเร็กทอรี>
Score:0
ธง kz

ด้วยรายชื่อไดเร็กทอรีที่สร้างโดย mod_autoindex คำขอย่อยภายในจะถูกทริกเกอร์สำหรับรายการที่แสดงทั้งหมดในไดเร็กทอรี สิ่งนี้ระบุไว้ในบันทึกด้วย ข้อกำหนดย่อย (ตรงข้ามกับ อักษรย่อ).

คุณสามารถป้องกันการ เขียนกฎใหม่ คำสั่งที่กำลังดำเนินการสำหรับคำขอย่อยโดยใช้ สวพ.FM91 (โนซูเบรค) ธง. ตัวอย่างเช่น:

RewriteRule badrule ไม่เคยเกิดขึ้น [NS]

หรือคุณสามารถย้าย เขียนกฎใหม่ คำสั่งออกจาก <Directory> คอนเทนเนอร์และวางไว้ใต้โดยตรง <VirtualHost> แทน. โปรดทราบว่าคำสั่ง อาจ จำเป็นต้องเปลี่ยน เล็กน้อยเนื่องจากตอนนี้กำลังทำงานในที่อื่น บริบท (โฮสต์เสมือน ตรงข้ามกับ ไดเรกทอรี) และประมวลผลก่อนหน้านี้ สิ่งนี้จะป้องกันไม่ให้มีการประมวลผลคำสั่งสำหรับแต่ละรายการในรายการไดเร็กทอรี (โดยไม่ต้องรวมไฟล์ สวพ.FM91 ธง). อย่างไรก็ตาม ยังสามารถเรียกใช้สำหรับคำขอย่อยอื่นๆ เช่น การเรียกสำหรับ ชื่อส่วนหัว และ ReadmeName ไฟล์ที่เกี่ยวข้องกับรายชื่อไดเร็กทอรี (หากตั้งค่าคำสั่งเหล่านี้ โดยไม่คำนึงว่าไฟล์นั้นมีอยู่หรือไม่ก็ตาม) ดังนั้น คุณยังคงอาจเลือกที่จะรวม สวพ.FM91 ตั้งค่าสถานะในคำสั่งเหล่านี้หากเป็นปัญหา

มันยังเข้าไปในไดเร็กทอรีย่อยและค้นหา index.html

สิ่งนี้เกิดจากการทดสอบ mod_dir สำหรับ ดัชนีไดเร็กทอรี เอกสาร หากไม่จำเป็นก็สามารถปิดใช้งานได้:

DirectoryIndex ถูกปิดใช้งาน

อ้างอิง:

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา