Kỹ thuật rewrite url trong php theo phân cấp của các mục

Thảo luận trong 'Lập trình web với PHP' bắt đầu bởi toanzoom, 18/6/12.

  1. toanzoom

    toanzoom Lính mới

    Tham gia ngày:
    12/3/11
    Bài viết:
    3
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giờ đang tiến hành rewrite url nhưng gặp một số vấn đề trong khi thao tác
    Khi mình truy cập đến

    http://localhost:81/news3/he-dieu-hanh/index.html
    hay
    http://localhost:81/news3/index.php?cate=view&menu=he-dieu-hanh
    đều có active menu (tức link đã được tô màu nền đỏ)
    hình
    [​IMG]

    nhưng khi truy cập vào mục con bằng kiểu đã rewrite thì nó mất khả năng bôi đỏ link cha

    [​IMG]

    nhưng khi truy cập theo kiểu truy vấn thông thường (tức là chưa rewrite) vào mục con thì màu đỏ ở mục cha lại xuất hiện

    [​IMG]

    Mình biết vấn đề là do rewrite nhưng không biết cách giải quyết như thế nào

    khi mình xóa bỏ dòng được bôi đậm trong quote tức là đánh dấu # đầu dòng thì mới bôi đỏ được link menu cha nhưng đồng thời không thể rewrite được url cha http://localhost:81/news3/he-dieu-hanh/.
    Dưới đây là hình khi đã xóa dòng rewrite đã được bôi đậm dòng chú thích trên

    [​IMG]

    http://www.mediafire.com/?1waguqqlb4x4m6c

    [video=youtube;JT1ifnrfvNc]http://www.youtube.com/watch?v=JT1ifnrfvNc[/video]

    Tổng kết lại mình rewrite url mà không ảnh hưởng đến active menu
     
  2. phòng vé Duy Đức

    phòng vé Duy Đức Lính mới

    Tham gia ngày:
    11/10/12
    Bài viết:
    5
    Đã được thích:
    0
    Điểm thành tích:
    1
    chờ câu trả lời cùng bạn
     
  3. harichu.net

    harichu.net Lính mới

    Tham gia ngày:
    23/7/12
    Bài viết:
    6
    Đã được thích:
    0
    Điểm thành tích:
    1
    có thể mình chưa nắm vững nên khó giải thích quá, gợi ý bạn tý nhẩy:

    K nên để (.*), thay vào đó bạn hãy định nghĩa cụ thể trường thông đầu vào khi rewrite.
    ví dụ như id number thì định nghĩa: ([0-9]*)
    tên có chứ số + chữ cái + gạch ngang: ([0-9a-zA-Z_-]*)

    Với code của bạn thì thay thành như sau là ok:

    Mã:
    RewriteEngine ON
    RewriteBase /news3
    RewriteRule ^([0-9a-zA-Z_-]*)/index\.html index.php?cate=view&menu=$1
    RewriteRule ^([0-9a-zA-Z_-]*)/([0-9a-zA-Z_-]*)/index\.html index.php?cate=view&menu=$1&submenu=$2
    RewriteRule index.html index.php 
     
  4. nexttop

    nexttop Đang làm quen

    Tham gia ngày:
    25/10/12
    Bài viết:
    101
    Đã được thích:
    0
    Điểm thành tích:
    16
    code này mìh test thử thấy vẫn vậy chắc mình làm không đúng chổ nào rồi !hic
     
Đang tải...

Chia sẻ trang này