Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Редирект ссылок старого сайта на новые
 
 автор: provodnik   (18.03.2007 в 16:30)   письмо автору
 
 

Доброго времени суток господа.
Ситуация следующая: был сайт и были на нем скрипты, такие как Доска объявлений, Каталог сайтов и т.п. Сейчас структура сайта всех модулей изменена. БД была переконвертирована. Всё хорошо. Но в поисковиках остались старые ссылки на информацию, которая доступна и сейчас, но по другим адресам.
Сам не люблю, когда захожу на сайт по одной сцылле, а меня редиректит на главную страницу.

В данный момент срабатывает редирект: ErrorDocument 404 http://www.site.ru/error.php
Поэтому хочется распознать, на какой скрипт идёт человек (на доску объявлений, каталог сайтов, статьи или новости...) до срабатывания этого редиректа, и показать ему заранее подготовленную страницу, с объяснением, почему он попал на неё, а не куда хотел, и объяснить, что нужная ему информация есть, но её просто нужно искать в другом месте...


Прошу подсказать, как мне поступить...

Могу привести для наглядности данные:
Старая сцылла категорий в доске объявлений: http://site.ru/board/index.php?event=list&...
Старая сцылла для объявлений: http://site.ru/board/index.php?event=view&....
Требуемая сцылла для редиректа с семейства этих двух: http://site.ru/page/non_message/

И еще примерные сцыллы:
http://site.ru/cat/cat_111.html
http://site.ru/cat/id_111.html
Требуемая сцылла для редиректа с семейства этих двух: http://site.ru/page/non_firms/
Что-то примерно такое...

Очень не хочется терять посетителей...
Спасибо заранее всем откликнувшимся...

   
 
 автор: provodnik   (23.03.2007 в 15:34)   письмо автору
 
   для: provodnik   (18.03.2007 в 16:30)
 

Для второго случая работает это:

<?
RewriteRule 
^cat/([a-zA-Z0-9_\.]+)$ page/non_firms/
?>

А для первого случая, для объявлений никак не получается...
Прошу подсказать.
Спасибо..

   
 
 автор: glsv (Дизайнер)   (24.03.2007 в 07:38)   письмо автору
 
   для: provodnik   (18.03.2007 в 16:30)
 

Попробуйте вот так:

RewriteEngine on
Options +FollowSymlinks  
RewriteBase /

RewriteCond %{QUERY_STRING} ^event=
RewriteRule ^board/index.php$ page/non_message/index.php [L]

В условии RewriteCond проверяется наличие строки event в параметрах запроса

   
 
 автор: provodnik   (24.03.2007 в 21:12)   письмо автору
 
   для: glsv (Дизайнер)   (24.03.2007 в 07:38)
 

glsv (Дизайнер) , спасибо, всё работает как нужно...
Вопросик: за что отвечает [L] в конце строки?

Мне приходится дублировать строки, что бы "подумать" за тех пользователей, которые не ставят в конце адреса слэш..
Пример:

RewriteRule ^board$ sboard.php
RewriteRule ^board/$ sboard.php

Просто у меня .htaccess уже весит 20Кб. Думаю, может что то можно оптимизировать...
Спасибо..

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования