Ребята, я пытаюсь изменить свой url, используя .htaccess, но получаю одну проблему. Мой URL-адрес выглядит так
www.example.com/web-search.php?q=car&limit=15
Я хочу сделать это так
www.example.com/web/cars/15
но не удалось, я не понимаю, пожалуйста, помогите мне. Спасибо. Мой код .htaccess
RewriteEngine On RewriteCond %{THE_REQUEST} ^(GET|POST)\ /web-search\.php\?q=(.*)\&limit=(.*?)\ HTTP RewriteRule ^ /%2/%3? [R=301,L] RewriteRule ^ web/([^/]*)/([^/]*)$ /web-search.php?q=$1&limit=$2 [L]
Он работает, я удаляю «web /» из URL-адреса перезаписи, но затем выглядит URL-адрес
www.example.com/cars/15
который я не хочу, я хочу добавить веб-сайт. заранее спасибо
Обновление 1:
Это вызывает проблему выше указанного правила перезаписи
RewriteEngine On RewriteCond %{THE_REQUEST} ^(GET|POST)\ /search\.php\?q=(.*)\&limit=(.*)\&siz=(.*?)\ HTTP RewriteRule ^ /%2/%3/%4? [R=301,L] RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /search.php?q=$1&limit=$2&siz=$3 [L]
Это вызвано двумя недоразумениями. Первое правило не добавляет «web» к URL-адресу. Второе правило содержит пространство-мошенник между ^
и остальным регулярным выражением, заставляя его возвращать ошибку.
RewriteEngine On RewriteCond %{THE_REQUEST} ^(GET|POST)\ /web-search\.php\?q=(.*)\&limit=(.*?)\ HTTP RewriteRule ^ /web/%2/%3? [R=301,L] RewriteRule ^web/([^/]*)/([^/]*)$ /web-search.php?q=$1&limit=$2 [L]
Не забудьте очистить кеш браузера перед тестированием, так как ваш браузер может кэшировать старую, неправильную, перенаправлять.