Điểm:0

Phục vụ autoindex của nginx theo đường dẫn khác

lá cờ il

Tôi đã gặp sự cố là tôi muốn bật tính năng tự động lập chỉ mục của nginx cho một số thư mục nhưng những thư mục đó cũng có tệp chỉ mục riêng.
Vì vậy, tôi đã tự hỏi liệu có cách nào để khiến nginx phục vụ trang tự động lập chỉ mục của nó trên một đường dẫn khác không. Cái gì đó như /path/to/dir/autoindex.html

Tôi đã thử như sau:

    vị trí ~* ^/path/to/dir/autoindex.html$ {
        tự động lập chỉ mục;
        tự động lập chỉ mục_định dạng html; 

        try_files /path/to/dir/ =404;
    }

Nhưng điều kỳ lạ đó chỉ chuyển hướng tôi đến /đường dẫn/đến/thư mục/ và cho tôi xem trang chỉ mục mặc định của tôi.

Ngoài ra, tôi muốn giữ điều này cho các thư mục không có trang chỉ mục, để đường dẫn cho chỉ mục tự động luôn nhất quán.

lá cờ us
Vui lòng cung cấp một ví dụ cụ thể về một yêu cầu và chính xác những gì nó sẽ phục vụ. Rất khó để biết bạn muốn yêu cầu URL nào và tự động lập chỉ mục đường dẫn hệ thống tệp nào bạn muốn được trả về.
lá cờ il
@TeroKilkanen `http://example.com/path/to/dir/autoindex.html` sẽ lưu trữ chỉ mục tự động của `$webroot/path/to/dir`
Điểm:0
lá cờ il

Tôi đã tìm thấy một giải pháp khá hay chỉ sử dụng khéo léo các chuyển hướng và thứ tự của chúng:

người phục vụ {
    # nghe chỉ thị vv...

    gốc/đường dẫn/đến/web/root/thư mục;

    # Autoindex chỉ hiển thị khi nginx không thể gửi các tệp chỉ mục của chính nó
    chỉ số xxx;

    viết lại ^(?<path>.*)/autoindex\.html$ $path/ cuối cùng;
    viết lại ^(?<path>.*)/$ $path/index.html cuối cùng;

    tự động lập chỉ mục;

    # phần còn lại của cấu hình máy chủ...
}

Nhược điểm duy nhất của điều này là bạn không thể thực sự sử dụng nhiều tệp chỉ mục khác nhau mà mục lục chỉ thị thường hỗ trợ. try_files cũng có thể làm hỏng việc này, vì bạn cần đảm bảo rằng đối với <đường dẫn>/ URI nginx không thể tìm thấy bất kỳ tệp nào nên nó hiển thị autoindex.

Sẽ không khuyến nghị điều này trên bất kỳ thứ gì ngoại trừ máy chủ hoặc vị trí mà máy chủ chỉ chứa các tệp tĩnh.

Điểm:0
lá cờ us

viết lại nội bộ nginx có thể được áp dụng ở đây:

vị trí /path/autoindex.html {
    viết lại ^/đường dẫn/cuối cùng;
}

vị trí/đường dẫn {
    nội bộ; # Vị trí này chỉ được sử dụng cho chuyển hướng nội bộ

    tự động lập chỉ mục;

    try_files $uri $uri/ =404;
}

vị trí ~ ^/đường dẫn {
    ... định cấu hình những gì bạn muốn hiển thị với đường dẫn
}
lá cờ il
Tôi đã hỏi về việc có trang chỉ mục tự động trên một đường dẫn khác với đường dẫn kết thúc bằng `/`. Tôi biết cách bật autoindex
lá cờ us
Ah, thật ngớ ngẩn của tôi. Tôi đã cập nhật câu trả lời.
lá cờ il
Thật không may, điều đó trả về 404 cho mọi URI có `/path`. Việc thay đổi vị trí thành `location = /path/` sẽ sửa phần đó nhưng `/path/autoindex.html` vẫn trả về lỗi 404.
lá cờ us
Tôi đã thêm một khối `location` xử lý các yêu cầu bên ngoài vào `/path`.
lá cờ il
Vẫn là 404 cho `/path/autoindex.html`
lá cờ il
Ngay cả khi thay đổi `try_files $uri $uri/ =404;` thành `try_files $uri $uri/ =403;` vẫn trả về lỗi 404, cho tôi biết rằng nó dường như không chạm vào khối vị trí khác.

Đă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.