PHP .htaccess 重写搜索词


PHP .htaccess Rewrite search term

我必须使用.htaccess重写我的搜索词,而是将正确的操作传递给我的表单。

<form method="GET" action="/search/">
  <input type="text" name="src"/>
  <button>Search</button> 
</form>

我正在使用此规则重写搜索 URL:

RewriteRule ^search/?$ views/search.php?src=$1 [NC,QSA,L]

所以我必须传递要在 MySQL 查询中提供服务的$src变量

当我到达页面 www.domain.com/search 时,即使我附加了?src=xxx,我也收到了未定义索引的错误

这是结果页面代码(某些部分被剪切):

$term = $_GET['src'];
if(isset($term) !== NULL)
    {  
    $resultsrc = $mysqli -> query("SELECT * FROM `products` WHERE name LIKE '" . $term . "' OR brand LIKE '" . $term . "' LIMIT 0 , 30");
}
    while($row = mysqli_fetch_all($resulsrc))
   { 
 [... etc ... ]
  }
}

感谢所有可以提供帮助的人。

您需要使用正则表达式捕获组在 url 中捕获/search 之后的部分,然后在目标 url 中将其用作 $1

RewriteRule ^search/(.*)/?$ views/search.php?src=$1 [NC,QSA,L]

这将重写

    /
  • 搜索/foo

    /
  • views/search.php?src=foo