PHP htaccess получение значений из $_GET

#php #apache #.htaccess #mod-rewrite

#php #apache #.htaccess #мод-перезапись

Вопрос:

Я столкнулся с этой проблемой htaccess. Мне нужно получить входные значения для поиска через $ _GET [‘s’], и я уже добавил это RewriteRule ^([a-zA-Z0-9_-] )/$ index.php?action=$1 в свой файл htaccess, который помогает мне получить удобный URL, например www.url.com/search /. Но я хочу передать другой $ _GET [‘s’] по ссылке через формы поиска, и я не хочу добавлять их, как www.url.com/search/search-text скорее я хочу этого: www.url.com/search/?s=search-text . пожалуйста, как я могу этого добиться?

Ответ №1:

Что вам нужно сделать, это сообщить apache, что вы хотите, чтобы строка запроса была добавлена. Самый простой способ сделать это — добавить следующее в конец вашего правила:

 RewriteRule ^([a-zA-Z0-9_-] )/$ index.php?action=$1 [L,QSA]
  

Обратите внимание, я также добавил L (последний), который вы, вероятно, захотите. QSA обозначает добавление строки запроса и делает то, что вы ожидаете.

Когда я захожу mysite.com/test/?test2=true и var_dump() $_GET вижу следующий вывод:

 array (size=2)
  'action' => string 'test' (length=4)
  'test2' => string 'true' (length=4)