我必须使用 .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]
所以我必须传递 $src
变量以在 MySQL 查询中提供服务
当我到达 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
关于PHP .htaccess 重写搜索词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35289429/