Помогите с редиректом

Вопросы об установке, настройке и работе самого фреймворка

Помогите с редиректом

Сообщение fireXXX » 15 июн 2010, 14:56

Добрый день,

есть такая проблема, дали сайт, который раньше кто-то продвигал.(написан на CI)

У него идет редирект с главной через префикс на что-то типа www.adresMagazina.aa -> www.adresMagazina.aa/prefiks/eshop/

А многие внешние ссылки стоят на www.adresMagazina.aa/prefiks/eshop
*без слеша в конце*

Гугл это понимает как разные адреса и ссылочное не перетекает.
Такой вопрос, вот я в контроллере index в папке eshop, что туда можно прописать, чтобы он проверял слеш в УРЛ и если ее нет, редиректил на адрес со слешем?

Что-то не могу врубиться (
fireXXX
 
Сообщения: 22
Зарегистрирован: 24 дек 2009, 12:24

Re: Помогите с редиректом

Сообщение Tovit » 15 июн 2010, 15:56

Это нужно решать в роутенге и при генерации урлов. Т.е. нужно просмотреть все места генерации ссылок и проставить/убрать слеш. Потом в роутинге привести все правила в соответствие с выбранным стилем.

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

Базовый роутинг воспринимает урл без слеша в конце и с ним как один и тот же, т.к. он работает именно с сегментами.

P.S. Самый простой случай -- это видоизменить функцию генерации ссылки (site_url() или config->site_url()) заставляя убирать или добавлять всегда в конец слеш. При этом через mod_rewrite вы можете настроить переадресацию, например, с урлов без слеша в конце на урл со слешем в конце, главное, передавать при этом нужный код ответа -- 301 о том, что страница перемещена навсегда на новый урл. Тогда поисковики заменят старый урл новым.

P.P.S. Советую прикинуть Как совместить описанные способы.
Фантазия! Фантазия! Она поможет... не форум!
Аватара пользователя
Tovit
Модератор
 
Сообщения: 1230
Зарегистрирован: 15 фев 2009, 17:18

Re: Помогите с редиректом

Сообщение Master » 15 июн 2010, 16:26

файрекс, добавь в .haccess в корневом каталоге строку

RewriteRule ^prefix/eshop$ /prefix/eshop/ [R=301,QSA]

это самое быстрое решение. потом можно полазить по коду и исправить все ссылки без слешей на ссылки со слешами, но обычно это уже маникюр и на PR не влияет
Master
 
Сообщения: 230
Зарегистрирован: 13 мар 2009, 13:22

Re: Помогите с редиректом

Сообщение fireXXX » 17 июн 2010, 15:53

Ребята спасибо, но у меня проблема в том, что сайт я привел в порядок, там все ссылки на сайт со слешем /

Но проблема в том, что у сайта около ста обменных ссылок и бывший программер криво проставил на сайт без слеша. Гугл это видит, как 2 страницы разные.
Писать всем 100 сайтам - малореально

RewriteRule ^prefix/eshop$ /prefix/eshop/ [R=301,QSA]
не помогло (
fireXXX
 
Сообщения: 22
Зарегистрирован: 24 дек 2009, 12:24


Вернуться в Общие вопросы по фреймворку

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1