Как сделать поиск .htaccess, разрешив mod_rewrite как строку запроса и номер страницы? - PullRequest
0 голосов
/ 17 декабря 2018

Мой исходный файл представляет собой страницу PHP с именем search.php.

Обычно функция поиска будет выглядеть следующим образом:

mydomain.com/search.php cid=&type=search&q=keyword+text&page=2

Однако возможно липерепишите его на mydomain.com/all.html?q=keyword+text&page=[1-anypage]?

Я пытался поместить этот код в .htaccess:

RewriteRule ^all.html?q=([^.*]+)&p=([0-9]+)$ search.php?cid=&type=search&q=$1&p=$2 [L]

, но что-то пошло не так.

Пожалуйста, помогите мне найти решение.Спасибо.

1 Ответ

0 голосов
/ 17 декабря 2018

Да, это возможно, но вы не можете сопоставить строку запроса в шаблоне RewriteRule, вам необходимо использовать директиву RewriteCond, чтобы проверить %{QUERY_STRING} что-то вроде следующего

RewriteEngine On

RewriteCond %{QUERY_STRING} ^q=([^&]+)&page=(.+)$ [NC]
RewriteRule ^all\.html$ /search.php?cid=&type=search&q=%1page=%2 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...