#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)