Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Всем привет!
Для проекта на симпле мне нужно переписать mod_rewrite для вложенности категорий которая в симпле отсутствует, и по словам разработчика создать роутинг url в симпле практически невозможно.

Вкратце:
Есть сайт http://atlet.com.ua/ у него url подкатегорий выглядит так http://www.atlet.com.ua/tennis_table/adidas/vsepogodnie
Собственно что нужно сделать так это реализовать такие ссылки в симпле.
Или как вариант можно написать 301 редирект старых ссылок на новые (у меня есть для этого скрипт, его просто нужно настроить правильно).
Других вариантов не предлагать так как сайт раскручен и не хотелось бы потерять проиндексированные страницы.

Предлагайте свои варианты и стоимость выполнения работ.

Ссылка на сообщение
Поделиться на другие сайты

mod_rewrite давно не юзаю для определения url.
Все достаточно банально - отправляем в обработчик url запрос, разбиваем строку по категориям "/", далее по файлам "." после запрашиваем а базе все что вытащили с url. скачай тот же ABOсms - посмотри как это реализовано там.

Ссылка на сообщение
Поделиться на другие сайты

Noxter, делай редиректами, т.к. с точки зрения СЕО вложенности, в том виде как их пишут обычно, излишни.

Т.е. придется собрать страницы для 301 редиректа.

Ссылка на сообщение
Поделиться на другие сайты

Страницы собрать не проблема.
Если переписывать mod_rewrite то я не могу избавится от надписи catalog в ссылках, а это проблема для меня.

Ссылка на сообщение
Поделиться на другие сайты

http://www.atlet.com.ua/tovari-dly-turizma/palatki/2hmestnie на http://atlet.com.ua/catalog/2hmestnie ну и т.д.
Обычным редиректом тут не обойтись.

Ссылка на сообщение
Поделиться на другие сайты

Прикрепил модуль для редиректа http://rghost.ru/37247785
В index.php его нужно приинклудить и настроить сами правила редиректа.

Ссылка на сообщение
Поделиться на другие сайты

Что-то меня вообще игнорируют(((
Процитирую еще здесь, может кто поможет...

RewriteRule ^old_page.html$ /new_page [R=301,L]

У меня таких страниц больше тысячи, думаю глупо будет хранить их в .htaccess.
Есть альтернативный способ для хранения ссылок?
Ссылка на сообщение
Поделиться на другие сайты

Только что помог одному человеку сделать то же самое, вот пример:


# Старые ссылки Этот блок должен идти перед "Статический страницы"
RewriteRule ^p1712440-kotly-lugansk.html$ /catalog/kotly [R=301,nc]
RewriteRule ^product_list/group_598399$ /catalog/konvektory [R=301,nc]

Ссылка на сообщение
Поделиться на другие сайты

Да так работает и по каталогу не много ссылок.
Но мне нужно еще сделать редирект всех товаров, а их примерно 1300 штук.
Так вот и назрел вопрос: правильно ли будет хранить все правила редиректа этих ссылок в файле htaccess ~1300 правил?

Ссылка на сообщение
Поделиться на другие сайты

> глупо будет хранить их в .htaccess.
А где еще их хранить? На каждый редирект вызывать PHP еще глупее

Ссылка на сообщение
Поделиться на другие сайты

Noxter, думаю тебе надо работать с условием 404 страницы.

1. Создать парсер старых УРЛ

$uri = explode('/', $_SERVER['REQUEST_URI']);



2. Брать последний кусок (2hmestnie из твоего примера)

$item = end($uri);



3. Все это дело срабатывает при 404 ошибке (index.php в корне сайта)

if(strlen($item) > 0){	header ('HTTP/1.1 301 Moved Permanently');	header ('Location: /catalog/'.$item);}	// Иначе страница об ошибке	header('http/1.0 404 not found');
Ссылка на сообщение
Поделиться на другие сайты

У меня есть схожий вариант

redirect.php

<?php
//Проверяем существование файла с адресами, нам же не нужен warning на всех страницах сайта
if (file_exists("links.txt")) {
   //Загоняем все строки файла в массив
   $f = file("links.txt");

   //И проходимся циклом по массиву проверяя все адреса.
   foreach ($f as $value) {
       //В $value у нас содержание строки которую в текущий момент проходит цикл
       $urls = explode("|", $value);

       //Теперь в $urls[0] будет адрес с которого будет редирект
       //а в $urls[1] будет адрес, на который нужно сделать редирект

       /*
           Следующий момент это дело удобства, вам
           удобнее хранить в файлах URI или URL?
           Я думаю что URL, отсюда и следующая строка
           в которой мы получаем полный URL текущей
           страницы.
       */

       $current_url = "http://" . $_SERVER['REQUEST_URI'];
       if ($current_url == $urls[0]) {
           //Делаем 301 редирект
           Header("HTTP/1.1 301 Moved Permanently");
           Header("Location: " . $urls[1]);
           break;
       }
   }
}
?>



links.txt

http://atlet.com.ua/abkingpro|http://atlet.com.ua/catalog/ab_king_prohttp://atlet.com.ua/tovary_dlya_detej|http://atlet.com.ua/catalog/tovary_dlya_detej

Но он не работает с подкатегориями как у атлета, мне кажется что это из-за слешей.
Ссылка на сообщение
Поделиться на другие сайты

1. работать с файлом для нескольки тысячь страниц - не айс.
2. мой случай исключает работу с директориями, я просто беру последнюю часть адреса и приставляю её на /catalog/
3. черкани ФТП в личку, сделаю тебе.

Ссылка на сообщение
Поделиться на другие сайты

Проверил я количество проиндексированных ссылок:
1. Гугл ~650
2. Яндекс ~ 800
Судя по количеству нужно переписать 800 ссылок.
yakutec сможешь все сделать? Я заплачу.

Ссылка на сообщение
Поделиться на другие сайты

я бы сделал по другому ;) если надо редирект http://atlet.com.ua/abkingpro => http://atlet.com.ua/catalog/ab_king_pro то надо дописать гду идёт проверка на статические страницы, перед ним узнать есть ли такая категория и прям там редирить - вкурили?

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...