Я постараюсь вам помочь:
- Возможно, у вас уже есть, но попробуйте генератор перезаписи мод и htaccess tester .
- С этот ответ : Запрос (все после?) Не является частью пути URL и не может быть пропущен или обработан директивой RewriteRule без использования [QSA].
- Я предлагаю использовать RewriteCond и , используя% 1 вместо $ 1 для совпадений строки запроса вместо того, чтобы делать все это в RewriteRule.
Для вашего решения попробуйте:
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^house/category$ house/category.php?cat=%1 [NC,L]
Это вставит .php
и cat=
при сохранении &page=
В ожидании вашего следующего шага, приведенная ниже модификация мода может помочь начать конвертацию
http://localhost/house/category/lounge/1
до
http://localhost/house/category.php?cat=lounge&page=1
Здесь требуется только RewriteRule, без строки запроса:
RewriteRule ^house/category/([^/]*)/([0-9]*)/?$ house/category.php?cat=$1&page=$2 [NC,L]
Используйте regex101 для получения дополнительной помощи и подробного описания того, что делают эти регулярные выражения.
Если это все еще не работает, продолжайте делать регулярное выражение более мягким, пока оно не будет соответствовать правильно:
Попробуйте удалить ^ в RewriteRule, чтобы он стал
RewriteRule category$ category.php?cat=%1 [NC,L]
Тогда она будет соответствовать этой странице на любом уровне каталога. Затем добавьте обратно house/
и добавьте /?
везде, где дополнительный начальный / конечный слеш может вызвать проблемы и т. Д.