2016-10-05 3 views
1

Ich habe durch andere Beiträge, aber kann keine Lösung finden, denke ich, es ist die URL-Struktur auf dem Index Dies ist eine Liste aus der Datenbank, die einen Link zu enthält eine Detailseite (ad-details.php)..htaccess Datei nicht neu geschrieben URL und bleibt das gleiche

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

Dies ist meine .htaccess-Datei:

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

Können Sie Post und Beispiel URL? –

+0

Rewrite ändert nicht die URL, die auf der Seite angezeigt wird, ändert die URL, nachdem sie den Server erreicht hat. Wenn Ihre URL auf der Seite wäre "/ ad/{$ id}/{$ title} .php" 'dann würde der Server durch Neuschreiben sehen es als '/ad-details.php?id = {$ id} & title = $ title'. Sie brauchen auch keine Dateiendung - sie könnte durch Neuschreiben hinzugefügt werden. – shudder

+0

Beispiel-URL- http: //localhost/Site/cmp/ad.php?id=17&title=this-is-a-title Ich möchte die URL in http: // localhost/Site/cmp/ad/17 umschreiben/this-is-a-title hier ist eine neue .htaccess RewriteEngine auf RewriteRule^ad/([0-9] +)/([a-zA-Z] +)/$ ad-details.php? id = $ 1 & title = $ 2 – davtx

Antwort

0

Ihre Rewrite-Regel verwendet diesen regulären Ausdruck URLs passen neu zu schreiben:

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

Es wird nicht URLs übereinstimmen, die ein enthalten ' - ', und erfordert eine Verzeichnisstruktur, die ein numerisches Verzeichnis enthält. Dies scheint nicht das zu sein, was Sie versuchen zu erreichen. Dies wird URLs überein, die dieses Format ähneln:

  • ad/9/details.php
  • ad/123/fleeber.php

Sie wollen wahrscheinlich etwas näher kommt die ad-details.php Seite passen :

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

Wenn die Liste der Seiten, die Sie passen sind versucht, gegen Striche enthält, könnten Sie, dass in der RegexMuster gehören auch:

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