- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте! Огромная просьба помочь найти решение или подтолкнуть в нужном направлении.
Суть проблемы: Есть сайт на MODx - http://restprom.ru/ , был перенесен с самописной CMS. Переадресация страниц со старого сайта осуществлялась с помощью RedirectMap 1.0. В какой то момент редирект перестал срабатывать, есть подозрения, что после правки файла htaccess.
Вопрос: Какая часть кода может быть причиной конфликта, или что могло «сломаться»? И еще – существует ли «идеальный» вариант написания файла конфигурации апаче для устранения дублей страниц?
Пример переадресации: Старая страница - http://restprom.ru/freeze_service Новая страница - http://restprom.ru/uslugi/remont_holodilnogo_oborudovaniya/.
Есть подозрение что накосячил именно в файле .htaccess:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.restprom\.ru$ [NC]
RewriteRule ^(.*)$ http://restprom.ru/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R=301,L]
RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC]
RewriteRule .* - [F,L]
RewriteRule ^(manager|assets)/*$ - [L]
RewriteRule \.(jpg|jpeg|png|gif|ico)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
RewriteCond %{REQUEST_URI} ^/index.html$
RewriteRule .+ http://restprom.ru/ [R=301,L]
RewriteCond %{REQUEST_URI} ^/index.htm$
RewriteRule .+ http://restprom.ru/ [R=301,L]
Код плагина:
global $modx;
$mapChunk = $modx->getChunk($chunk);
$mapLines = explode("\n",$mapChunk);
$mapArr = array();
foreach($mapLines as $line) {
list($link,$redirectId) = explode('||',$line);
$mapArr[$link] = $redirectId;
}
$q = $_REQUEST['q'];
if(isset($mapArr[$q])) {
$url = $modx->makeUrl($mapArr[$q]);
$modx->sendRedirect($url,0,'REDIRECT_HEADER','HTTP/1.1 301 Moved Permanently');
exit();
}
Буду признателен морально и материально просветившему в этом вопросе.
И еще – существует ли «идеальный» вариант написания файла конфигурации апаче для устранения дублей страниц?
Нет. Апаче не занимается дублями кмс.
переадресация страниц со старого сайта осуществлялась с помощью RedirectMap 1.0.
В нем и ищите проблему
Если что-то кажется надо вернуть до исходного состояния когда работало, и сравнить результат ДО и ПОСЛЕ.
Нет. Апаче не занимается дублями кмс.
В нем и ищите проблему
Если что-то кажется надо вернуть до исходного состояния когда работало, и сравнить результат ДО и ПОСЛЕ.
Если не ошибаюсь, с помощью htaccess как раз и решаются проблемы доступности одной и той же страницы по разным адресам, типа "site.ru/index.php", "site.ru/index.html","site.ru/","site.ru" и тд. Если не прав, поправьте, пожалуйста.
Если бы знал где проблема и была возможность откатить до предыдущего состояния, не обращался бы к ВАМ. ))
Если не прав, поправьте, пожалуйста.
/index.php и /index.html эта капля в океане. Реальные дубли начинаются отсюда
/ru/forum/689355
/ru/forum/comment/9964630
/ru/forum/comment/9965608
А мы откуда можем знать ваше предыдущие состояние? Бэкапы надо делать перед каждым изменением. Здесь не так уж и много строчек, можно и запомнить что вносили а что было. Капайте в сторону модуля, проблемы в htaccess не вижу. Или восстановите дефолтный файл модх-а если кажется что дело именно в мод_реврайте.
---------- Добавлено 27.01.2012 в 18:15 ----------
Но как вариант попробуйте убрать вот эти строчки
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R=301,L]
они редиректят страницу без слэша, а у вас старые как раз без него. По этому возможно в базе не находится старый урл