.htaccess文件不会重写url并保持不变

时间:2016-10-05 22:09:09

标签: php .htaccess

我搜索了其他帖子但找不到解决方案,我认为它是索引上的url结构 这是一个来自数据库的列表,其中包含指向详细信息页面的链接(ad-details.php)。

package:

这是我的.htaccess文件:

<div class="col-md-4">
    <?php
    if($result = $link->query("SELECT * FROM ads WHERE ad_status = '1' AND  
    ad_type = 'Accomodation' LIMIT 10")){
        if($result->num_rows > 0){
            echo "<ul class='list-group'>";
            while($row = $result->fetch_object()){
                $amount = $row->ad_price;
                $famount = number_format($amount);
                echo "<li class='list-group-item'>"."<a class='active' href='ad-details.php?id=" .
                  $row->ad_id ."&title=".$row->url. "'>" .'<b>'.$row->  ad_title.'</b>'.
                  "</a>" ."<br>".$row->ad_town . ", " .$row->ad_state."." .
                  "<span class='badge'> ₦ $famount </span>" ."</li>";
              }
              echo "</ul>";
          }
          else{
              echo "<p style='color:red;''>No Data to be Displayed!</p>";
          }
    }else{
        echo "An error has occurred";
    }
    ?>
</div>

1 个答案:

答案 0 :(得分:0)

您的重写规则使用此正则表达式来匹配要重写的URL:

^ad/([0-9]+)/([a-zA-Z]+)\.php$

它不会匹配包含“ - ”的网址,并且需要包含仅限数字目录的目录结构。这似乎不是你想要匹配的东西。这将匹配类似于以下格式的网址:

  • 广告/ 9 / details.php
  • 广告/ 123 / fleeber.php

您可能希望更接近此内容以匹配ad-details.php页面:

^ad-[a-zA-Z0-9]\.php$

如果您尝试匹配的网页列表包含破折号,那么您也可以在正则表达式模式中包含该网页:

^ad-[a-zA-Z0-9-]\.php$