Điểm:1

RewriteRule được áp dụng cho tất cả các tệp trong danh sách thư mục

lá cờ vn

Với Chỉ mục tùy chọnLogLevel 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>
Điểm:0
lá cờ kz

Với một danh sách thư mục được tạo bởi mod_autoindex, một yêu cầu con nội bộ được kích hoạt cho tất cả các mục được liệt kê trong thư mục. Điều này được chỉ định trong nhật ký với yêu cầu phụ (như trái ngược với ban đầu).

Bạn có thể ngăn chặn viết lại quy tắc chỉ thị đang được xử lý cho các yêu cầu phụ bằng cách sử dụng NS (nosubreq) lá cờ. Ví dụ:

RewriteRule badrule không bao giờ xảy ra [NS]

Ngoài ra, bạn có thể di chuyển viết lại quy tắc chỉ thị ra khỏi <Directory> container và có nó trực tiếp dưới <VirtualHost> thay thế. Lưu ý rằng chỉ thị có thể Cần phải thay đổi một chút vì nó hiện đang hoạt động ở một nơi khác bối cảnh (Máy chủ ảo như trái ngược với danh mục) và được xử lý trước đó. Điều này tự nhiên ngăn chỉ thị được xử lý cho từng mục trong danh sách thư mục (không cần phải bao gồm NS lá cờ). Tuy nhiên, nó vẫn có thể được gọi cho các yêu cầu con khác, chẳng hạn như các cuộc gọi cho Tên tiêu đềReadmeName các tệp được liên kết với danh sách thư mục (nếu các lệnh này được đặt, bất kể tệp có tồn tại hay không), vì vậy bạn vẫn có thể chọn đưa vào NS gắn cờ trên các chỉ thị này nếu đây là sự cố.

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à do thử nghiệm mod_dir cho Thư mục Index các tài liệu. Nếu điều này là không cần thiết thì nó có thể bị vô hiệu hóa:

Directory Index bị vô hiệu hóa

Thẩm quyền giải quyết:

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.