Как я могу regex htaccess для моего поискового запроса - PullRequest
1 голос
/ 27 декабря 2010

Пример моего URL

http://domain.com/search.php?s=search&w=state&t=town&c=category&p=1

  • s = ключевое слово для поиска
  • w = регион
  • т = город
  • с = категория
  • p = пейджинг

То, что я сейчас сделал в своем .htaccess, это

RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/$ /search.php?s=$1&w=$2&t=$3&c=$4&p=$5 [L]

И URL будет

http://domain.com/search/keyword/region/town/category/1/

Вопрос

Как мне переписать мой .htaccess, чтобы сделать мой URL глобальным запросом

Пример s=bmw+5+series&w=&t=&c=

http://domain.com/search/bmw-5-siries/

Пример s=bmw+5+series&w=&t=&c=car

http://domain.com/search/car/bmw-5-siries/

Пример s=bmw+5+series&w=manchester&t=&c=car

http://domain.com/search/manchester/car/bmw-5-siries/

или другие выходные данные в терминах запроса.

Это возможно?

1 Ответ

1 голос
/ 27 декабря 2010

Самый простой способ - отредактировать URL-адреса SEO, добавив в поисковый термин символ, идентифицирующий искомый термин.

т.е.

/ поиск / БМВ 5-й серии / г / Манчестер / с / Car или же / Поиск / БМВ 5-й серии / с / Luxury

и используйте переменные вместе с RewriteCond, чтобы определить, какой RewriteRule применить.

С вашим текущим методом было бы трудно определить, является ли третий объект (например, автомобиль) городом или категорией или чем-то еще, если у вас нет установленных правил. (т.е. если передан город, тогда регион обязательно будет передан, поэтому вы можете написать другой набор правил для обработки каждого условия вместо единственного имеющегося у вас правила)

например.

RewriteRule ^([^/]*)/([^/]*)/$ /search.php?s=$1&w=$2 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)//$ /search.php?s=$1&w=$2&t=$3 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/$ /search.php?s=$1&w=$2&t=$3&c=$4 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/$ /search.php?s=$1&w=$2&t=$3&c=$4&p=$5 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...