Я действительно новичок в .htaccess. Мне было интересно, как создать сложные SEO дружественные URL для строки поиска и выбранных фильтров.
Я использую следующий код для поиска.
ReWriteRule ^search/(.*)/(.*) ?module=search&q=$1&page=$2 [L]
ReWriteRule ^search/(.*) ?module=search&q=$1 [L]
Когда дело доходит до добавления параметров фильтра, это становится кошмаром. Рассмотрим следующие фильтры:
Сокращение от: нет, имя, дата + ASC, DESC.
Категория: нет, идентификатор категории.
Поиск в: Все, Заголовок, Сообщение, Автор.
Когда все фильтры выбраны, наш адрес будет;
Сырье:
www.site.com/?module=search&q=test&shortBy=name_ASC&catID=1&searchIn=title
Seo Friendly: www.site.com/search/test/name_ASC/1/title/
Теперь это совсем не сложно, но я просто хочу понять, как все работает.
Нужно ли применять все фильтры к URL, даже если они не выбраны? Это создаст более длинные URL-адреса без причины, поэтому я считаю, что должен быть другой подход к этому.
Как определить правило в .htaccess? Как и в моем примере, я пишу по крайней мере 2 правила в моем файле .htaccess (2-е для нумерации страниц).
Все, что я мог сейчас подумать, сделать что-то вроде этого ^search/(.*)/(.*) ?module=search&$1=$2 [L]
, но это не выглядит элегантно.
Буду рад, если вы поможете мне с этой проблемой. Буду признателен, если вы также поделитесь своим опытом с новичком .htaccess, таким как я.