繁体   English   中英

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

[英].htaccess file doesn't rewrite url and remains the same

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

<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>

这是我的.htaccess文件:

    RewriteEngine On
    RewriteRule ^ad/([0-9]+)/([a-zA-Z]+)\.php$ /ad-details.php?id=$1&title=$2    
    [L]

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

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

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

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

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

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

如果您尝试匹配的页面列表包含破折号,您可以在正则表达式模式中包括:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM