Форум владельцев Ravon Matiz (Daewoo Matiz) + Ravon R2 (Chevrolet Spark) + Chery QQ: Старые ссылки на другие темы не работают - Форум владельцев Ravon Matiz (Daewoo Matiz) + Ravon R2 (Chevrolet Spark) + Chery QQ

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Старые ссылки на другие темы не работают Можно исправить, но нужно содействие администрации

#1 Пользователь офлайн   aleyush 

  • Группа: Владельцы Клубной карты
  • Сообщений: 82
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 11 Ноябрь 2008 - 18:35

Есть серьёзное неудобство при просмотре старых тем на форуме. Знаю как исправить, но нужно содействие администрации форума. Описание ниже.

Проблема.
При просмотре старых тем не работают ссылки в соседние топики. Постоянно жмёшь на ссылки - а там "нет такой страницы".

Подробности.
Решил посмотреть в чём дело на примере сообщения Вопросы новичков
Сообщение содержит ссылку на matizclub.ru. Я на форуме недавно и не в курсе его истории. Судя по всему, раньше форум "жил" на другом домене, в результате ссылки перестали работать.
Методом пристального взгляда определил правильную ссылку: Герметизация капота

Как исправить.
Имея базу сообщений, можно "пройтись" по ней скриптом и перекодировать старые ссылки. Это сделает чтение старых, но от этого не менее полезных тем заметно удобнее.
Исправить вручную конкретное сообщение-пример недостаточно - таких ссылок по форуму весьма много.
Другой вариант исправления - поместить "на старом месте" страницы, которые перенаправляли бы пользователей на корректные новые.

Сообщение отредактировал aleyush: 11 Ноябрь 2008 - 18:42


#2 Пользователь офлайн   ruta66 

  • Группа: Владельцы Клубной карты
  • Сообщений: 1 551
  • Автомобиль
    Другое авто
  • Год выпуска: 2012
  • Регион
    RU - Московская область (50, 90, 150, 750)

Отправлено 11 Ноябрь 2008 - 23:15

Просмотр сообщенияaleyush (11.11.2008, 17:35) писал:

......
Решил посмотреть в чём дело на примере сообщения Вопросы новичков
........


Эту исправил. Спасибо.
Вопросы новичков
Методом...хм-м :lol: Просто, исправил и всё. :shock:

#3 Пользователь офлайн   aleyush 

  • Группа: Владельцы Клубной карты
  • Сообщений: 82
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 12 Ноябрь 2008 - 00:03

Просмотр сообщенияruta66 (11.11.2008, 22:15) писал:

Эту исправил. Спасибо.
Вопросы новичков
Методом...хм-м :lol: Просто, исправил и всё. :shock:

Я уже обратил внимание - сейчас редактор настроен таким образом, что он при сохранении старые ссылки меняет на новые.

Но только в той же теме таких ссылок не одна и не две, а есть ещё и другие темы...

#4 Пользователь офлайн   ruta66 

  • Группа: Владельцы Клубной карты
  • Сообщений: 1 551
  • Автомобиль
    Другое авто
  • Год выпуска: 2012
  • Регион
    RU - Московская область (50, 90, 150, 750)

Отправлено 12 Ноябрь 2008 - 00:20

Просмотр сообщенияaleyush (11.11.2008, 23:03) писал:

...Но только в той же теме таких ссылок не одна и не две, а есть ещё и другие темы...

Только рук всего две. :shock: А времени и того меньше.

#5 Пользователь офлайн   aleyush 

  • Группа: Владельцы Клубной карты
  • Сообщений: 82
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 12 Ноябрь 2008 - 00:24

Так я потому исходно и обращался к администрации, имеющей доступ к базе данных форума. Вычитывать архив за несколько лет и руками править - удовольствие ещё то, нужно просто скриптик прогнать.

#6 Пользователь офлайн   WineX 

  • Группа: Участники
  • Сообщений: 1 128
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Год выпуска: 2004
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 12 Ноябрь 2008 - 22:46

Вы можете написать скиптик? Все скажут огромное спасибо за это.
ТЗ на SQL запрос (PHP скрипт):
- выбрать строки в которых содержатся слова matizclub.ru/forum/
- заменить matizclub.ru/forum/ -> matizclub.net/
- данные обрабатывать пакетно для PHP, для SQL ставить LIMIT (по 30 строк за раз)

Желающему сделать напишу названия таблиц и полей.
Презент от клуба обещаю.

#7 Пользователь офлайн   aleyush 

  • Группа: Владельцы Клубной карты
  • Сообщений: 82
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 13 Ноябрь 2008 - 00:25

Нужен именно php или можно подключиться напрямую к базе?

Какая СУБД используется?

На MSSQL запрос выглядел бы примерно так:

update messages_table set message_body_column = replace(message_body_column, 'matizclub.ru//forum/', 'matizclub.net/') where message_body_column like '%matizclub.ru//forum/%'

Если хочется кусками, то можно так:

update messages_table set message_body_column = replace(message_body_column, 'matizclub.ru//forum/', 'matizclub.net/') where message_id_column in
(select top 30 message_id_column from messages_table where message_body_column like '%matizclub.ru//forum/%')

P.S. Двойные слэши вставил, так как иначе редактор форума меняет matizclub.ru//forum/ на matizclub.net/ :drinks:

P.P.S. Кстати, такой замены недостаточно, нужен ещё минимум один паттерн (смотри Вопросы новичков)

Сообщение отредактировал aleyush: 13 Ноябрь 2008 - 00:40


#8 Пользователь офлайн   WineX 

  • Группа: Участники
  • Сообщений: 1 128
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Год выпуска: 2004
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 13 Ноябрь 2008 - 01:52

База естественно MySQL.
Вьютопик можно вести только на 404, тут вариантов никаких. Или ставитьт паттерн просто на matizclub.net.

#9 Пользователь офлайн   aleyush 

  • Группа: Владельцы Клубной карты
  • Сообщений: 82
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 13 Ноябрь 2008 - 01:58

Какая версия MySQL? Подзапросы он не с первых версий стал поддерживать просто.

Если уже поддерживает, то

update messages_table set message_body_column = replace(message_body_column, 'matizclub.ru//forum/', 'matizclub.net/') where message_id_column in
(select message_id_column from messages_table where message_body_column like '%matizclub.ru//forum/%' limit 30)

P.S. Можно даже проще, оказывается:
update messages_table set message_body_column = replace(message_body_column, 'matizclub.ru//forum/', 'matizclub.net/') where message_body_column like '%matizclub.ru//forum/%' limit 30

Последний вариант без подзапроса работает с версии MySQL 3.23 - не думаю, что у Вас стоит что-то более древнее.

Сообщение отредактировал aleyush: 13 Ноябрь 2008 - 02:20


#10 Пользователь офлайн   WineX 

  • Группа: Участники
  • Сообщений: 1 128
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Год выпуска: 2004
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 13 Ноябрь 2008 - 08:44

5.0.37

#11 Пользователь офлайн   aleyush 

  • Группа: Владельцы Клубной карты
  • Сообщений: 82
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 13 Ноябрь 2008 - 10:37

Просмотр сообщенияWineX (13.11.2008, 07:44) писал:

5.0.37


Тогда должен сработать любой из вариантов в предыдущем сообщении.

#12 Пользователь офлайн   aleyush 

  • Группа: Владельцы Клубной карты
  • Сообщений: 82
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 17 Ноябрь 2008 - 17:52

Так что, сможете прогнать запрос? В него нужно только подставить имя таблицы сообщений, имя поля с телом сообщения и заменить двойные слеши на одинарные.

#13 Пользователь офлайн   WineX 

  • Группа: Участники
  • Сообщений: 1 128
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Год выпуска: 2004
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 17 Ноябрь 2008 - 18:11

Да, да всё сделаю на днях.

#14 Пользователь офлайн   Roden 

  • Группа: Участники
  • Сообщений: 31
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Регион
    RU - Орловская область (57)

Отправлено 19 Ноябрь 2008 - 16:10

да не надо заморачиваться с запросами, скоро выложу htaccess, положете в папочку и будет перекидывать на matizclub.net в нужную тему :oops:

итак,
1) отыскиваем в папке домена matizclub.ru (в корне!) файл .htaccess, если его нет - создаем.
2) находим в нем строчку:
RewriteEngine on
(если такой нет - пишем)
3) после нее - вставляем:
RewriteRule ^forum/?(.*)$ http://www.matizclub.net/$1 [L,R=permanent]
4) сохраняем файл, заливаем на сервер в текстовом формате

готово :)
от варианта с запросами отличается простотой и более правильным подходом с точки зрения SEO.
можно проверить на моем сайте, зайдите по ссылке и попадете на этот форум: http://www.404studio.ru/forum/index.php?s...mp;#entry154880

Сообщение отредактировал Roden: 19 Ноябрь 2008 - 16:14


#15 Пользователь офлайн   WineX 

  • Группа: Участники
  • Сообщений: 1 128
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Год выпуска: 2004
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 27 Ноябрь 2008 - 11:34

Всё отлично работает. Всё сделал.
Изначально искал вариант именно с mod_rewrite, но не смог найти работающего решения. Поиски и вопросы на форумах веб-мастеров ни к чему также не привели.
С точки зрения SEO вариант самый походящий, т.к. ссылки на сайт могут быть не только на форуме, но и на внешних ресурсах. Так мы приведем люде в нужное место в любом случае.

2 Roden
Нужен еще одна замена, шаблон такой:
http://www.matizclub...pic.php?t=XXXXX
http://www.matizclub...showtopic=XXXXX
где XXXXX номер топика.

2 Roden и aleyush
Как и обещал от лица администрации клуба готов бесплатно прислать по комплекту светоотражающих наклеек (большую, маленькую и машинку). Полные почтовые адреса и ФИО получателя пишите в личку.
Также выражаю благодарность от лица администрации и остальных пользователей форума которым теперь станет легче работать со старыми темами.

Во, нашел правило которое я пытался прописать раньше.
RewriteRule ^/~(.+) http://www.matizclub.net/~$1 [R,L]

#16 Пользователь офлайн   aleyush 

  • Группа: Владельцы Клубной карты
  • Сообщений: 82
  • Автомобиль
    Daewoo Matiz II (M150) 0.8 MT
  • Регион
    RU - Москва (77,97,99,177,197,199,777)

Отправлено 02 Декабрь 2008 - 13:05

А про вторую замену (viewtopic) я как раз писал выше, в 7 сообщении темы. :shock:

Согласен, что вставить на сервере перенаправление на новые страницы более правильно, так как заодно перенаправит и старые закладки в браузерах посетителей. Но всё-таки одно другому не мешает, можно и в базе перекодировать. :shock:

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему