- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте!
Помогите с удалением дублей страниц.
Есть файл .htacess с правилами для ЧПУ:
RewriteRule ^articles/(?:article-|)([0-9]+)\.html$ /articles/index.php?go=article&id=$1 [L]
RewriteRule ^prog/([a-zA-Z0-9_]+)-([0-9]+)\.html$ /prog.php?prog_id=$2&t_name=$1 [L]
Т.е. вот такие адреса страниц работают:
/articles/article-123.html
/prog/progname-123.html
А гугл еще индексирует такие адреса (по ним также открываются страницы):
/articles/index.php?go=article&id=123 (обращение без ЧПУ)
/prog/progname-123.html?iframe=true&width=900&height=450 (какой-то мусор в конце адреса)
Подскажите, пожалуйста, как сделать страницы недоступными или редирект на правильные адреса?
Пробовал в php ловить переменную: iframe - что-то не получается. Она же наверное теряется при обработке ЧПУ...
Гугл этот дурацкий iframe подставил на сотни и тысячи страниц-дублей.
Это, как я считаю, главная ошибка при создании движка. Нужно по хорошему все запросы слать на файлы без ?параметры, т.е. на /articles/index.php, а там уже анализировать REQUEST_URI, но раз уж у вас так сделано, то теперь анализируйте $_SERVER['REQUEST_URI'], либо вообще в htaccess запретите страницы с ?go=article и iframe=, перенаправляя их на 404.php, в котором будет header 404 ошибки.
Это, как я считаю, главная ошибка при создании движка. Нужно по хорошему все запросы слать на файлы без ?параметры, т.е. на /articles/index.php, а там уже анализировать REQUEST_URI, но раз уж у вас так сделано, то теперь анализируйте $_SERVER['REQUEST_URI'], либо вообще в htaccess запретите страницы с ?go=article и iframe=, перенаправляя их на 404.php, в котором будет header 404 ошибки.
Движок конечно не идеальный...но уже не переделаешь весь...
А как описать эти конструкции в акцессе?
Понимаю, что их ловить надо, но вот не сумел сам описать это выражением регулярным.
---------- Добавлено 08.04.2015 в 12:07 ----------
Попробовал так:
RewriteCond %{REQUEST_URI} iframe=true
RewriteRule ^prog/(.*) / [R=301,L]
Толку - ноль...
В %{THE_REQUEST} будет строка вида "GET /articles/index.php?go=article&id=123 HTTP/1.1"
так тоже нет? Без всяких RewriteCond
так тоже нет? Без всяких RewriteCond
Нет. Без RewriteCond не обойтись в данном случае.
Нет. Без RewriteCond не обойтись в данном случае.
Вы уверены? По-моему мой вариант вполне рабочий:)
так тоже нет? Без всяких RewriteCond
Это не работает.
---------- Добавлено 09.04.2015 в 06:34 ----------
В %{THE_REQUEST} будет строка вида "GET /articles/index.php?go=article&id=123 HTTP/1.1"
Это замечательно работает!
Только во втором случае так заработало:
RewriteCond %{THE_REQUEST} /articles/index.php\?go=article&id=([^\ &]+)
Добавил: /articles/index.php
Ура, проблема решена! Спасибо всем за помощь!