.htaccess没有正确重定向

时间:2014-02-13 15:29:14

标签: php jquery apache .htaccess redirect

我有这个自动完成脚本fron jquery。 它从数据库中获取详细信息,然后显示给用户,当用户单击特定结果时......将其转到页面: - page.php?id =(通过自动完成中的提取接收到的ID)。

我有一个.htaccess重定向,像这样工作。 假设id为2,那么它会自动重定向到 products / 2 。 但由于某种原因,它似乎没有起作用。

以下是自动填充: -

<script>
  $(function() {
    function log( message ) {
      $( "<div>" ).text( message ).prependTo( "#log" );
      $( "#log" ).scrollTop( 0 );
    }

    $( "#birds" ).autocomplete({
      source: "search.php",
      minLength: 2,
      select: function( event, ui ) {


        log( ui.item ? "Selected: " + ui.item.value + " aka " + ui.item.label :
          "Nothing selected, input was " + this.actor );
        window.location.href = 'product_display.php?id=' + ui.item.value;
       // document.testForm.action = "pretravel.php?id="+ui.item.value;
        //document.testForm.submit();
      }
    });
  });



  </script>

的.htaccess

RewriteRule ^products/(.+)$ product_display.php?id=$1 [L,QSA]

product_display.php页面

<?php
include 'dbconnector.php';
$id=$_GET['id'];
$id=htmlspecialchars($id);
$query = "SELECT productname from products where productid = '" . $id . "' order by productname";
$result=mysql_query($query,$db) or die (mysql_error($db));
$row=mysql_fetch_assoc($result);
echo $row['productname'];

?>

欢迎任何建议。

1 个答案:

答案 0 :(得分:1)

这是你的javascript错误,改变这个

window.location.href = 'product_display.php?id=' + ui.item.value;

window.location.href = './product_display.php?id=' + ui.item.value;

然后只有完整的网址出现。 的 [更新] 你的重写规则是这样的

RewriteRule ^products/(.+)$ product_display.php?id=$1 [L,QSA]

所以你的网址必须像这样

// sample url    http://example.com/products/{id}
//then code must be
 window.location.href = './products/' + ui.item.value;

[更新] 尝试使用 mysqli 而不是 mysql 来连接数据库以获得良好的安全性。