nginx viết lại chuyển từ rủi ro nếu câu lệnh sang try_files. Ai có thể giúp chuyển đổi? (ngắn)


0

Tôi đang cố gắng dọn sạch các quy tắc viết lại nginx của mình cho diễn đàn Diễn đàn của tôi có một số sửa đổi và phần mềm bổ sung trong cùng một trang web gây ra sự cố. Tôi có những thứ hoạt động như bình thường, nhưng theo nginx If is Evil, tôi lo ngại và muốn thử và chuyển đổi một vài quy tắc này thành try_files thay thế.

Hiện tại, có

  1. Một quy tắc cho các hình ảnh và tệp tĩnh để chúng không được chuyển sang mod seo (ví dụ: .gif, .ico, thậm chí .css)

  2. Một quy tắc cho mobiquo thư mục con còn được gọi là: plugin tapatalk. Để làm việc đó, tôi phải loại trừ toàn bộ thư mục khỏi việc viết lại.

  3. Nếu tập tin không tồn tại. Tôi không chắc nó quan trọng như thế nào, nhưng có vẻ như đó là một ý tưởng tốt. Có lẽ đó là để hạ thấp công việc của mod seo.

Các quy tắc viết lại nginx ở dạng khối Nếu có rủi ro rõ ràng:

cái này ở trên / forum / block vì tôi muốn ưu tiên nó, nếu điều này được thực hiện không đúng cách tôi rất muốn biết.

    location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
            # Some basic cache-control for static files to be sent to the browser
            expires max;
            add_header Pragma public;
            add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }

    location /forum/ {

            try_files $uri $uri/ /forum/dbseo.php?$args;

            if ($request_uri ~* ^/forum/mobiquo) {
                    break;
            }

            if (-f $request_filename) {
            expires 30d;
                    break;
            }

            if ($request_filename ~ "\.php$" ) {
                    rewrite ^(/forum/.*)$ /forum/dbseo.php last;
            }


            if (!-e $request_filename) {
                    rewrite ^/forum/(.*)$ /forum/dbseo.php last;
            }

    }

KẾT THÚC

Ở đâu đó trong các tìm kiếm của tôi, tôi đã tìm thấy một mẫu mà tôi đã cố gắng thích nghi, nhưng vì tôi không hiểu regex nên tôi đã thất bại :)

vị trí / {

            # if you're just using wordpress and don't want extra rewrites
            # then replace the word @rewrites with /index.php

thử_files $ uri $ uri / /index.php;

}

địa điểm @rewrites {

            # Can put some of your own rewrite rules in here
            # for example rewrite ^/~(.*)/(.*)/? /users/$1/$2 last;
            # If nothing matches we'll just send it to /index.php

try_files $ uri $ uri / /forum/dbseo.php?$args;

viết lại ^ /index.php cuối cùng;

viết lại ^ (/. php) $ /forum/dbseo.php cuối cùng;

}


Tôi đoán vấn đề của bạn với mod dbseo không phải là khối !!
Trang web kỹ thuật số

Câu trả lời:


0

Cố gắng làm sạch câu hỏi của bạn, đặc biệt là phần cuối của câu hỏi bạn sẽ hét lên thay vì cung cấp mã.

Dựa trên cấu hình bạn cung cấp ở đầu câu hỏi của bạn, tôi đã kết thúc với điều đó:

location /forum/ {
    index dbseo.php; # You obviously wish to send everything erroneous/inexistent to dbseo.php, any index.php file would suffer the regex location below
    try_files $uri $uri/ /forum/dbseo.php?$args; # Any inexistent file/directory will be handled over to /forum/dbseo.php

    location ^~ /forum/dbseo.php { # Avoids matching the regex location below (performance)
    }

    location ^~ /forum/mobiquo { # Avoids matching any other rules
    }

    location ~* \.php$ {
        try_files /forum/dbseo.php =404;
        # Be careful here, try to secure your location since the regex can still be manipulated for arbitrary code execution
    }
}

Các vị trí lồng nhau là một điều tốt để cách ly các khối vị trí có khả năng xung đột. Hãy nhớ rằng các vị trí regex được đánh giá seuqively, do đó để tránh thứ tự các khối vị trí có tác động (đó là một mớ hỗn độn giống như cấu hình Apache), hãy cố gắng luôn đặt các vị trí regex trong các tiền tố để tránh một vài trong số chúng đi theo nhau.

Bạn có thể tìm hiểu về locationsửa đổi trên trang tài liệu của nó.

Có thể có nhiều mạng con hơn, nhưng bạn có tất cả thông tin cơ bản bạn cần trong ví dụ của tôi. Công việc là của bạn để hiểu / cải thiện nó để phù hợp hơn với nhu cầu của bạn. : o)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.