2016-02-09 6 views
0

Я должен переписать свой поисковый запрос с использованием .htaccess и вместо этого передать правильное действие в мою форму.PHP .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 ... ] 
    } 
} 

Спасибо всем, кто может помочь.

+0

Каков URL-адрес, который вы видите в браузере при получении этой ошибки? – anubhava

ответ

0

Вы должны использовать регулярное выражение группы захвата, чтобы захватить часть после/поиска в URL, а затем использовать его в целевой URL как $ 1

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

будет переписан

  • /поиск/Foo

в

  • /views/search.php?src=foo
+0

Спасибо за ответ, я получил ожидаемый результат, но имею ту же проблему «Undefined index: src ...», и вместо этого я бы хотел, чтобы url появился как www.foo.bar/search/term, если возможно – andreaem

+0

@ Andreaem Правило в порядке, возможно, что-то не так с вашим php. Правило внутренне перенаправляет/search/term на search.php без изменения URL-адреса в браузере – starkeen

+0

Я уверен, что что-то не так, но мой код отсутствует, но я не вижу, где – andreaem

Смежные вопросы