Jump to content

Recommended Posts

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

У меня таких страниц больше тысячи, думаю глупо будет хранить их в .htaccess.
Есть альтернативный способ для хранения ссылок?
Link to post
Share on other sites

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


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

Link to post
Share on other sites

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

Link to post
Share on other sites

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');
Link to post
Share on other sites

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

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

Но он не работает с подкатегориями как у атлета, мне кажется что это из-за слешей.
Link to post
Share on other sites

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...