首页 > 解决方案 > 使用 PHP 和 MySQL 重写 htaccess URL

问题描述

我的问题是:我怎样才能显示它http://localhost/jakir1/banner2/test.php/title-3而不是http://localhost/jakir1/banner2/test.php?slug=title-3

当我点击

  1. 标题 1
  2. 标题 2
  3. 标题 3

其显示的输出

这是我的代码:

<table border="1">
  <tr>
    <td>
     Product Name 
   </td>
    <td>
    Description 
   </td>
   </tr>
   <?php $sql = "SELECT * FROM marchant_item ORDER BY id DESC";
         $display =  mysqli_query($db, $sql);
         while ($row = mysqli_fetch_array($display)) { ?>
            <tr>
                <td><a href="test.php?slug=<?php echo $row['slug']; ?>"><?php echo $row['item_name']; ?></a></td>
                <td>
                    <?php echo $row['description']; ?>
                </td>
            </tr>
   <?php      }
    ?>
</table>

<?php
if (isset($_GET['slug'])) {
$data = $_GET['slug'];
?>
<table border="1">
  <tr>
    <td>
     Product Name 
   </td>
    <td>
    category
   </td>
   </tr>
   <?php $sql = "SELECT * FROM marchant_item WHERE slug ='$data'";
         $display =  mysqli_query($db, $sql);
         while ($row = mysqli_fetch_array($display)) { ?>
            <tr>
                <td><?php echo $row['item_name']; ?></td>
                <td>
                    <?php echo $row['category']; ?>
                </td>
            </tr>
   <?php      }
    ?>

</table>
<?php
}
?>

输出: 在此处输入图像描述

标签: php.htaccess

解决方案


在你的 .htaccess 文件中写下这一行—— RewriteRule ^test/([A-Za-z0-9-]+)?$ test.php?slug=$1 [NC]

更新您的代码

<td><a href="test/<?php echo $row['slug']; ?>"><?php echo $row['item_name']; ?></a></td>

你得到 http://localhost/jakir1/banner2/test/title-3


推荐阅读