Hiển thị kết quả từ 1 đến 8 / 8
  1. #1
    Tham gia
    05-09-2009
    Bài viết
    57
    Like
    0
    Thanked 0 Times in 0 Posts

    Giúp đỡ mình về Rewrite-Url trong php với

    Mình mới nghiên cứu về php nên còn rất gà, có câu hỏi nào ngớ ngẩn mong các bạn bỏ qua nha.
    Mình có thư mục gốc là hocphp nằm trong htdocs (server xampp) trong đó mình có các file (index.php, exp3.php, rewrite.htaccess)
    Mình đã vào httpd.conf để bỏ # trước rewrite
    và nội dung demo các file của mình như sau:
    - file rewrite.htaccess
    Code:
    RewriteEngine on
    RewriteBase /hocphp
    RewriteRule ^topic_([0-9]*).html index.php?topic=$1
    - file index.php
    Code:
    <a href='index.php?topic=1'>Click Here !</a>
    
    <?php
    switch($_GET['topic'])
    {
    case 1 : include("exp3.php");
    break;
    }
    ?>
    - file exp3.php
    Code:
    <?php
    $str="Xin Chào PHP !";
    echo "<center>".$str."</center>";
    ?>
    Nhưng khi mình bấm vào liên kết Click Here ! thì trên thanh địa chỉ vẫn hiện http://localhost/hocphp/index.php?topic=1
    đáng nhẽ phải là thế này http://localhost/hocphp/topic_1.html thì mới đúng ý mình
    Bạn nào biết sai chỗ nào chỉ mình với, hoặc có đoạn code nào demo có thể send cho mình để mình tự mổ sẻ cũng được.
    Quote Quote

  2. #2
    Tham gia
    20-10-2007
    Bài viết
    136
    Like
    0
    Thanked 0 Times in 0 Posts
    bạn phải sửa trong thẻ <a>


    <a href='index.php?topic_1.html'>Click Here !</a>

    <?php
    switch($_GET['topic'])
    {
    case 1 : include("exp3.php");
    break;
    }
    ?>

  3. #3
    Tham gia
    11-03-2005
    Bài viết
    659
    Like
    0
    Thanked 7 Times in 1 Post
    Bạn hiểu sai bản chất của cơ chế rewrite. mod_rewrite chỉ map đường dẫn ảo thành đường dẫn thực thôi. Bạn đang làm ngược với khả năng của nó

  4. #4
    Tham gia
    05-09-2009
    Bài viết
    57
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi pcdinh View Post
    Bạn hiểu sai bản chất của cơ chế rewrite. mod_rewrite chỉ map đường dẫn ảo thành đường dẫn thực thôi. Bạn đang làm ngược với khả năng của nó
    vậy giờ mình muốn khi Click Here ! thì trên thanh địa chỉ hiển thị http://localhost/hocphp/topic_1.html
    thay vì hiển thị http://localhost/hocphp/index.php?topic=1 rất là dài và xấu xí thì làm sao được bạn?

  5. #5
    Tham gia
    11-03-2005
    Bài viết
    659
    Like
    0
    Thanked 7 Times in 1 Post
    <a href='index.php?topic=1'>Click Here !</a> <-- đây là đường dẫn thực

    <a href="topic_1.html">Click Here !</a> <-- đây là đường dẫn ảo

    Bạn cung cấp 1 đường dẫn ảo cho user và sau đó mod_rewrite sẽ map nó về đường dẫn thực

  6. #6
    Tham gia
    05-09-2009
    Bài viết
    57
    Like
    0
    Thanked 0 Times in 0 Posts
    Mình đã sửa lại rồi
    -file rewrite.htaccess
    Code:
    RewriteEngine on
    RewriteBase /hocphp
    RewriteRule ^post/([0-9]*) index.php?id_post=1
    -file index.php
    Code:
    <a href='post/1990'>Click Here !</a>
    
    <?php
    switch($_GET['id_post'])
    {
    case 1 : include("exp3.php");
    break;
    }
    ?>
    -file exp3.php
    Code:
    <?php
    $str="Xin Chào PHP !";
    echo "<center>".$str."</center>";
    ?>
    Mình bấm vào liên kết nhưng nội dung trang exp3.php không được include vào. Cụ thể mình sai chỗ nào, bạn có thể chỉ cho mình biết được không, nản quá. T_T

  7. #7
    Tham gia
    29-11-2008
    Bài viết
    94
    Like
    0
    Thanked 0 Times in 0 Posts
    theo như mình hiểu thì mỗi RewriteRule ^post/([0-9]*) index.php?id_post=1 chỉ áp dụng cho một trang vậy mấy ngàn trang thì phải viết mấy ngàn dòng á. Có cách nào nhanh hơn không

  8. #8
    Tham gia
    03-02-2009
    Bài viết
    1,192
    Like
    0
    Thanked 1 Time in 1 Post
    Quote Được gửi bởi hoanghon2005 View Post
    theo như mình hiểu thì mỗi RewriteRule ^post/([0-9]*) index.php?id_post=1 chỉ áp dụng cho một trang vậy mấy ngàn trang thì phải viết mấy ngàn dòng á. Có cách nào nhanh hơn không
    Đọc kỹ tài liệu về .htaccess đi sẽ không còn th8ác mắc như vậy nữa

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •