- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Подскажите что и как надо сделать. (здесь ссылки не рабочие, не пытайтесь по ним переходить, это вселишь примеры)
Вообщем есть сайт у адрес примерно выглядит так: http://site.ru/index.php?id=pade; В вебмастере яндекса стали появляться и индексироваться похожие страницы (дубли) http://site.ru/?id=pade; http://site.ru/index.php?tt=pade.
Есть ещё http://site.ru/index.php - это нормальная, а эта http://site.ru/index.php? - с восклицательным знаком, как его убрать.
С вопросительным. Насколько знаю, одинокий ? в .htaccess и т.п. отловить нельзя. Нужно копать глубже. На чем сайт?
Вот почему надо формировать ЧПУ. УРЛы с GET параметрами всегда обрастают лишними параметрами.
Наверно на PHP.
Я в PHP плохо разбираюсь, такой код присутствует:<?php
include "includes/contents.php";
if($_GET['id'] == "") {
$page = "contents/".$contentname;
include $page;
}
else{
$page = "contents/" . $_GET['id'] . ".php";
include $page;
if (file_exists ( $page = "contents/" . $_GET['id'] . ".php" ))
{echo '<b><font color="green"></font></b>'; }
else {echo '404';
$error="true";
}
}
echo"</div>";
?>
Удалил слеш в конце и index.php
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.site.ru [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
И удалил category (не существующие папки) из URL
---------- Добавлено 23.08.2016 в 14:38 ----------
Вот почему надо формировать ЧПУ. УРЛы с GET параметрами всегда обрастают лишними параметрами.
ЧПУ - этот код: <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
- он у меня не работает.
Mixalko, ЧПУ - человеко понятный урл. Насколькоя понимаю у вас Wordpress? Можете сделать скрин того что у вас в админке в настройках URL?
Mixalko, ЧПУ - человеко понятный урл. Насколькоя понимаю у вас Wordpress? Можете сделать скрин того что у вас в админке в настройках URL?
Нет не Wordpress и не джумла и не др.. Это было давно чтото придумано и работало. Последнее время начал замечать дубли страниц в поиске как описано выше.
Mixalko, код крайне слабый, в том числе и в плане безопасности.
Вот это вообще шедевр:
$page = "contents/" . $_GET['id'] . ".php";
include $page;
if (file_exists ( $page = "contents/" . $_GET['id'] . ".php" ))
Судя по логике (да, я умудрился даже здесь рассмотреть задатки таковой), чтобы закрыть одинокий ?, нужно написать что-то подобное:
Хотя конечно тут лучше действовать не от противного, а в лоб, т.е. проверять адрес на соответствие всем имеющимся у вас обработчикам, но а если такое соответствие не найдено, выдавать 404-ую ошибку.ЧПУ могло быть сокрыто вот за этим кодом:
$page = "contents/".$contentname;
include $page;
Но к сожалению что такое $contentname, из приведенного кода непонятно. Рекомендую вам почитать эту мою статью: Как сделать единую точку входа с ЧПУ? Но а в целом вам крайне рекомендуется хотя бы что-то такое.
---------- Добавлено 23.08.2016 в 16:49 ----------
P.S. Дубли из-за GET-параметров – проблема многих сайтов. Сам Яша тоже этим страдает, хотя им походу это пофиг, лишь бы других подрючить:
yandex.ru/?
yandex.ru/?id
yandex.ru/?id=killme
---------- Добавлено 23.08.2016 в 16:53 ----------
Моя подружка в этом плане попродвинутей оказалась: gency.ru/? :D
Mixalko, код крайне слабый, в том числе и в плане безопасности.
Вот это вообще шедевр:
$page = "contents/" . $_GET['id'] . ".php";
include $page;
if (file_exists ( $page = "contents/" . $_GET['id'] . ".php" ))
А что здесь не так? Подскажите как сделать правильно.
---------- Добавлено 23.08.2016 в 17:23 ----------
Mixalko
Судя по логике (да, я умудрился даже здесь рассмотреть задатки таковой), чтобы закрыть одинокий ?, нужно написать что-то подобное:
Хотя конечно тут лучше действовать не от противного, а в лоб, т.е. проверять адрес на соответствие всем имеющимся у вас обработчикам, но а если такое соответствие не найдено, выдавать 404-ую ошибку.
Если честно этот знак меня волнует меньше всего, со временем разберусь.
Подскажите как избавиться от дублей:
site.ru/index.php?id=pade
site.ru/?id=pade
раньше такого не было, заметил не давно когда в поиске появилось много страниц.
ЧПУ решит эту проблему?
Mixalko, чтобы решить проблему таких дублей, нужно сделать 301 редирект с одного на другой. Что-то вроде этого:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/$1 [R=301,L]
nikonlay, зачем $1? Он тут вообще не катит. Это у ТС-а есть:
Только почему ТС говорит, что «http://site.ru/index.php - это нормальная», когда нормальная – это /, я не знаю.---------- Добавлено 23.08.2016 в 18:48 ----------
Mixalko, уберите довесок \ HTTP/ в конце первой строки.
---------- Добавлено 23.08.2016 в 18:53 ----------
ЧПУ решит эту проблему?
nikonlay, зачем $1? Он тут вообще не катит. Это у ТС-а есть:
Только почему ТС говорит, что «http://site.ru/index.php - это нормальная», когда нормальная – это /, я не знаю.
---------- Добавлено 23.08.2016 в 18:48 ----------
Mixalko, уберите довесок \ HTTP/ в конце первой строки.
---------- Добавлено 23.08.2016 в 18:53 ----------
Если «в поиске появилось много страниц», то адресацию теперь уже лучше не трогать. Нужно было раньше думать. Теперь только так или редирект.
1. У меня уже стоит код:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.site.ru [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
это ведь 301 редирект с index.php на главную и убирает слеш в конце на главной.
3. Подскажите как тогда сделать редирект с site.ru/?id=pade на site.ru/index.php?id=pade
2. довесок \ HTTP/ убрал в верху урл стал выглядеть site.ru/?id=pade, а на странице при наведении на ссылку site.ru/index.php?id=pade - поисковики такое не воспримут за дубли?
И ещё, ввёл адрес так site.ru/?=pade и он тоже есть. А здесь какой редирект должен быть?