Наша система
Наш поисковый модуль может иметь много параметров, таких как
- ключевое слово для поиска
- экзаменационный фильтр
- предметный фильтр
- фильтр диапазона дат
- фильтр названий курсов
...
...
и т.д.
и есть параметры разбивки на страницы и сортировки, такие как
- Номер страницы
- Количество результатов на странице
- поле сортировки
- порядок сортировки
У нас были такие URL, как: -
www.projectname/module/search/<search keyword>/<examination filter>/<subject filter>/
www.projectname/module/search/<search keyword>/<examination filter>/<subject filter>/<Page number>,<Number of results in a page>,<sort field>,<sort order>
....
...
...
И у нас было одно правило перезаписи в htaccess для каждого варианта.
Текущая проблема
Из-за проблем с несколькими URL-адресами, вызывающих проблемы в обслуживании кода, я теперь прибегаю к функциям PHP для выполнения задачи вместо htaccess, что-то похожее на библиотеки URL-адресов каркасов, таких как Zend, Codeignitor.
Мой вопрос
Мне просто нужны некоторые предложения, по которым из следующих соглашений формата URL лучше следовать, учитывая тот факт, что все поисковые фильтры / пармы не будут нужны каждый раз. Итак, каким из следующих двух соглашений лучше следовать: -
Наличие всех параметров URL, присутствующих во всех URL, независимо от того, нужны они или нет, например: -
www.projectname / module / search / hello // 110 / ... все остальные параметры присутствуют ...
Здесь нам не нужно упоминать, какой параметр является поисковым ключевым словом, а какой - тематическим фильтром. Простые функции парсера URL всегда принимают 2-й параметр из www.projectname / module / в качестве ключевого слова поиска (в данном случае, привет) и аналогично для других параметров. В этом примере фильтр экзамена неприменим, поэтому он остается пустым и не нарушает URL, но это хорошо. Если было много пустых параметров, то появилось бы много косых черт
Предоставление свободы передачи параметров URL в любом порядке, например: -
www.projectname / module / search / search_keyword / hello / subject_filter / 110 / ... присутствуют только другие необходимые параметры ...
www.projectname / module / search / subject_filter / 110 / search_keyword / hello / ... присутствуют только другие необходимые параметры ...
Оба эти URL-адреса означают одно и то же
В этом соглашении функция парсера URL анализирует каждую пару имя-значение и принимает значение рядом с именем «search_keyword» в качестве ключевого слова для поиска и аналогичным образом для других (в этом примере name = search_keyword, value = hello). Функция будет анализировать каждую пару имен и значений, поэтому термин search_keyword, отображаемый в качестве значения для другой пары, не будет мешать.
Пожалуйста, примите во внимание следующие факторы: -
- SEO дружелюбие
- простота обслуживания (учитывая, что в будущем могут быть добавлены новые фильтры)
Пожалуйста, дайте несколько советов по улучшению SEO. Я мало что знаю об этом
Спасибо