Hỏi về lỗi preg_match trong nginx

Discussion in 'Thảo Luận Chung' started by Nai, Oct 5, 2022.

Tags:
  1. Nai

    Nai MiddleMan Staff Member

    Mình có đoạn rewrite thế này

    rewrite ^/detail/(.*).html$ /detail.php?slug=$1 last;

    Thì với url dạng abc.com/detail/s.l.u.g.html thì page vẫn load được.

    Nhưng url dạng abc.com/detail/.s.lug.html thì page lỗi 403 mềm

    mình cần viết lại thế nào để nginx hoạt động đây, ae ai có kinh nghiệm chia sẻ mình với.

    Cảm ơn mọi người
     
  2. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    .s.lug nầy nó có trong db ko? nếu truy cập đường dẫn /detail.php?slug=.s.lug
     
  3. Nai

    Nai MiddleMan Staff Member

    Dạ nếu truy cập như thế thì file detail.php sẽ load được anh, ko còn lỗi 403 nữa.
     
  4. wpresources

    wpresources Bang Chúng

    Có vẻ last; tương tự như [L] trong RewriteRule.Thay vì cố chỉ dùng một lệnh để giải quyết thì thử thêm một dòng nữa như trên xem sao.
    Dòng 1 không đúng nó sẽ xuống dòng 2
     
  5. Nai

    Nai MiddleMan Staff Member

    Cách này e thử luôn, cũng ko dc cụ à
     
  6. wpresources

    wpresources Bang Chúng

    Theo lý thuyết thì nó phải đúng rồi.nếu sai thì bác thử
    +khởi động lại ngix hay apache,để nó đọc lại cấu hình
    +tạo một trang php mới để thử chỉ chạy lệnh rewrite thôi có thể có nhiều cấu hình ngix trong chương trình php hiện tại đấu nhau khiến lỗi
    +không được nữa thì chờ cao nhân hoặc bỏ qua chủ đề này vì nó chỉ là url hiển thị không quá quan trọng
     
    Nai likes this.