Codeigniter и SEO - PullRequest
       3

Codeigniter и SEO

0 голосов
/ 18 апреля 2011

Я занимаюсь разработкой сайта для мобильных телефонов с использованием CodeIgniter. Я чувствую себя комфортно с регулярным выражением и mod_rewrite. Мой вопрос о том, как создать SEO дружественный URL-адрес, такой как этот, в codeigniter.

http://mysite.com/phones/samsung/model_name/

Я могу сделать это, используя идентификатор категории, подкатегории и т. Д., Как это.

http://mysite.com/phones_c23/samsung_s34/model_name_m32/

Но я ищу более чистое решение (как в примере выше).

Маршруты мне не подходят в этой ситуации, потому что администратор этого сайта может создавать неограниченные основные категории (например, mysite.com/phones/ mysite.com/tablet/)

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Использовать функцию переназначения codeigniter.Второй сегмент URI обычно определяет, какая функция в контроллере вызывается.CodeIgniter позволяет вам переопределить это поведение с помощью _remap ().

Что вы можете сделать так:

В контроллере сделать функцию _remap () {} Теперь, вфункция remap использует сегмент URL, чтобы получить фрагменты вашего URL.

Если запрос таков: http://mysite.com/phones/samsung/model_name/

Ваш перенаправитель должен найти сегменты "samsung", "phones" и "model_name" .. запустите запрос, чтобы получить подробную информацию(идентификаторы ядра и т. д.), а затем вуаля, у вас есть динамически работающая система.

Для получения дополнительной информации проверьте это: http://codeigniter.com/user_guide/general/controllers.html#remapping

0 голосов
/ 20 апреля 2011

Я бы не отказался от маршрутизации так быстро.Метод контроллера не должен быть вторым параметром в URL.Если вы возьмете пример того, как выглядит URL-адрес http://mysite.com/phones/samsung/ABCD/, то внутри файла rout.php вы можете сделать

$ route ['phones / (: any) / (: any) '] = "phones / blah / $ 1 / $ 2";

Внутри вашего контроллера "Телефоны" у вас есть функция "blah" (вероятно, хорошо переименовать ее), и производитель телефона будетпервый параметр и модель телефона будут вторым параметром.Это будет работать со всеми производителями и всеми моделями.Вам не придется иметь другой контроллер или метод в зависимости от различных комбинаций.

Если это не всегда будут телефоны (например, это может быть планшет), и у вас может быть URL-адрес, такой как http://mysite.com/tablet/samsung/ABCD/, тогда ваш файл rout.php должен быть чем-то вроде $ route ['(: any) / (: any) / (: any)'] = "что-то / blah / $ 1 / $ 2 / $ 3";Тогда контроллер «Что-то» будет иметь функцию «бла», которая будет передаваться электронному типу (телефон, планшет и т. Д.), Производителю и модели.

Чтобы сделать это еще проще, как сказал @Stewie, вы можете использовать _remap ().Руководство пользователя содержит хорошую документацию и примеры того, как его использовать http://codeigniter.com/user_guide/general/controllers.html#remapping

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...