1

Тема: Дубли главной страницы вида /index.php?start=

Сегодня зайдя в google webmaster для одного из своих сайтов на dle в раздел: Оптимизация HTML -> Повторяющиеся заголовки (теги title) обнаружил небольшое количество страниц типа /index.php?start=(и произвольное число) все они ведут на главную (по сути дубль главной). Надо ли избавится от данных страниц ? На просторах интернета пишут, что они даже полезны, но интересует мнение ваше мнение...

Re: Дубли главной страницы вида /index.php?start=

Abrikos пишет:

Надо ли избавится от данных страниц ?

Надо.

Abrikos пишет:

На просторах интернета пишут, что они даже полезны, но интересует мнение ваше мнение...

Не тех ты людей читаешь...

Чтобы избавиться, и не просто избавиться, а правильно все организовать, надо сделать так.
В файле .htaccess после

RewriteEngine On

Добавить:

RewriteBase /
RewriteCond %{QUERY_STRING} ^start=([0-9]){1,10}$
RewriteRule (.*) page/%1 [R=301,L]

PS И перестань всяких дебилов в интернете читать smile

3

Re: Дубли главной страницы вида /index.php?start=

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

4 (05.10.2012 16:41 отредактировано bukarovalogin)

Re: Дубли главной страницы вида /index.php?start=

Здравствуйте! Как сделать так, чтобы со всех станиц /page/1/, и т.д. происходил редирект на главную? Разумеется только для склейки главной страницы. Я так понимаю нужно подправить правило, которое из вашего блога.
При установке данного редиректа меня перекидывает на страницу /page/3/, вместе с этим редиректом у меня стоит вот этот из вашего блога. Хотелось бы чтобы со всех адресов которые дублируют главную страницу в виде site.ru/page/1/,/2/,/3/, и т.д. осуществлялся ридерект на site.ru

Открываем файл .htaccess, который находится в корне сайта (это там, где лежит основной index.php)
НАХОДИМ:
### END Определяем главное зеркало

НИЖЕ ДОБАВЛЯЕМ:
### START Редирект с первой страницы на основную
RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
RewriteRule ^(.*)page/1/$ $1/ [R=301,L]
### END Редирект с первой страницы на основную

Открываем файл /engine/engine.php

НАХОДИМ:
if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) {

ВЫШЕ ДОБАВЛЯЕМ:
    if ( ($config['allow_alt_url'] == "yes") && (intval($_GET['cstart']) == 1) && (strpos($_SERVER['REQUEST_URI'], '/page/1') !== false) ) {
        $first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );
        header("HTTP/1.0 301 Moved Permanently");
        header("Location: $first_page_url");
        die("Redirect");
    }

Добавлено: 05-10-2012 16:45:37

Может ли это правило дублироваться в .htaccess?

RewriteBase /

Re: Дубли главной страницы вида /index.php?start=

bukarovalogin, как-то так.

    if ( $dle_module == 'main' and (intval($_GET['cstart']) > 1) ) {
        header("HTTP/1.0 301 Moved Permanently");
        header("Location: http://site.ru");
        die("Redirect");
    }

Добавлять надо выше вот этого:

    if ( ($config['allow_alt_url'] == "yes") && (intval($_GET['cstart']) == 1) && (strpos($_SERVER['REQUEST_URI'], '/page/1') !== false) ) {

Re: Дубли главной страницы вида /index.php?start=

bukarovalogin пишет:

Хотелось бы чтобы со всех адресов которые дублируют главную страницу в виде site.ru/page/1/,/2/,/3/, и т.д. осуществлялся редирект на site.ru

Привет, я лично сделал вот так, после выполнения всех инструкций АлаичЪ'а просто заменил вот эти две строки:

### START Редирект с первой страницы на основную
RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
RewriteRule ^(.*)page/1/$ $1/ [R=301,L]
### END Редирект с первой страницы на основную

Заменить на:

### START Редирект с первой страницы на основную
RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
RewriteRule ^page/ / [R=301,L]
### END Редирект с первой страницы на основную

Я php не трогал, попробуй может и у тебя получится.
p.s.: Будет круто если наш админ одобрит, может всё таки что то не так сделал я.

Re: Дубли главной страницы вида /index.php?start=

Amigo пишет:

p.s.: Будет круто если наш админ одобрит, может всё таки что то не так сделал я.

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

8

Re: Дубли главной страницы вида /index.php?start=

Вместе с этими редиректами со страницы site.ru/page/1/ на основную и тем, который Вы мне предложили сделать в php теперь я не могу поставить вот этот редирект /index.php?start= , есть ещё какие нибудь предложения, чтоб при вот такой вот ошибке site.ru/index.php?start=7654 редирект был на основную страницу. Всё это нужно только для главной. Заранее спасибо.

После установки этого редиректа /index.php?start=7654 получилось вот что:

http://site.ru/var/www/u3961687/data/ww … start=7654

9

Re: Дубли главной страницы вида /index.php?start=

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http:\/\/%1/$1 [R=301,QSA,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
RewriteRule ^(.*)page/1(/?)+$  /$1 [L,R=301]

10

Re: Дубли главной страницы вида /index.php?start=

Ура, всё получилось, воспользовался советом Алаича=)
Спасибо за помощь в решении моей проблемки!

Vanchik, твой редирект не работает в связке с теми, что у меня стоят. Спасибо за попытку помочь=)

Клёвый блог, админ крут!!!

11

Re: Дубли главной страницы вида /index.php?start=

bukarovalogin пжл. - это код на редирект от всех возможных дублей главной.

12 (20.03.2013 13:39 отредактировано mfa)

Re: Дубли главной страницы вида /index.php?start=

Уважаемый АлаичЪ! Пытался воспользоваться Вашим советом:

Чтобы избавиться, и не просто избавиться, а правильно все организовать, надо сделать так.
В файле .htaccess после
RewriteEngine On

Добавить:

RewriteBase /
RewriteCond %{QUERY_STRING} ^start=([0-9]){1,10}$
RewriteRule (.*) page/%1 [R=301,L]

Но не срабатывает. Наверное, у меня куча лишнего в аксессе. С Вашего позволения выложу его сюда:

DirectoryIndex index.php

RewriteEngine On

RewriteBase /
RewriteCond %{QUERY_STRING} ^start=([0-9]){1,10}$
RewriteRule (.*) page/%1 [R=301,L]

RewriteBase /
RewriteCond %{QUERY_STRING} ^do=cat&category=(.+)/?
RewriteRule ^([^.]+)$ /$1? [R=301,L]



# Защита от шеллов
RewriteRule ^uploads/(.*)\.(php|php3|phtml|cgi|fcgi|pl|fpl|shtml|html|inc|exe)$ uploads/alarm.php [L]


# Редиректы
Redirect 301 /старая_категория_1 http://сайт.com/новая_категория_1/
Redirect 301 /старая_категория_2 http://сайт.com/новая_категория_2/
Redirect 301 /старая_категория_3 http://сайт.com/новая_категория_3/


# Редирект c /5555/категория на /категория  - ВАЖНО поставить выше той строчки, что ниже!
RewriteBase /
RewriteRule ^(.*page/\d+/).+ /$1 [R=301,L]

# Редиректы
RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]


RewriteRule ^yasitemap(/?)+$ index.php?do=yasitemap
RewriteRule ^yasitemap/page(.*)/ index.php?cstart=$1&do=yasitemap

# Карта сайта пользователей
RewriteRule ^yasitemap_users(/?)+$ index.php?do=yasitemap_users
RewriteRule ^yasitemap_users/page(.*)/ index.php?cstart=$1&do=yasitemap_users



# Сам пост
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 [L]
# За день
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2&day=$3 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&day=$3&cstart=$4 [L]
# За весь месяц
RewriteRule ^([0-9]{4})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&cstart=$3 [L]
# Вывод за весь год
RewriteRule ^([0-9]{4})(/?)+$ index.php?year=$1 [L]
RewriteRule ^([0-9]{4})/page/([0-9]+)(/?)+$ index.php?year=$1&cstart=$2 [L]
# вывод для отдельного юзера
RewriteRule ^user/([^/]*)(/?)+$ index.php?subaction=userinfo&user=$1 [L]
RewriteRule ^user/([^/]*)/page/([0-9]+)(/?)+$ index.php?subaction=userinfo&user=$1&cstart=$2 [L]
# вывод в виде каталога
RewriteRule ^catalog/([^/]*)(/?)+$ index.php?catalog=$1 [L]
RewriteRule ^catalog/([^/]*)/page/([0-9]+)(/?)+$ index.php?catalog=$1&cstart=$2 [L]
# вывод непрочитанных статей
RewriteRule ^newposts(/?)+$ index.php?subaction=newposts [L]
RewriteRule ^newposts/page/([0-9]+)(/?)+$ index.php?subaction=newposts&cstart=$1 [L]
# Статистические страницы
RewriteRule ^static/(.*).html(/?)+$ index.php?do=static&page=$1 [L]
# вывод избранных статей
RewriteRule ^favorites(/?)+$ index.php?do=favorites [L]
RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L]

RewriteRule ^statistics.html$ index.php?do=stats [L]
RewriteRule ^addnews.html$ index.php?do=addnews [L]
RewriteRule ^more.xml$ engine/more.php [L]
RewriteRule ^sitemap.xml$ uploads/sitemap.xml [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L]
RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^<]+)/more.xml$ engine/more.php?do=cat&category=$1 [L]
RewriteRule ^page,([0-9]+),([^/]+).html$ index.php?do=static&page=$2&news_page=$1 [L]
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L]


### Редиректы с site.ru/category/index.php на site.ru/category/ и др.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.*)index\.php$
RewriteRule ^(.*)index\.php$ $1 [R=301,L]

### Редиректы с index.php на сайт
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

### START Редирект с первой страницы на основную
RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
RewriteRule ^(.*)page/1/$ $1/ [R=301,L]
### END Редирект с первой страницы на основную

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.сайт.com$ [NC]
RewriteRule ^(.*)$ http://сайт.com/$1 [R=301,L]

Помогите пожалуйста ((. Как его точно прописать, а то эти index.php?start= портят всю картину идеального веса )

http://s23.postimage.org/e2l1zw9xn/screen.jpg

Проблема в комментариях. Их слишком много (они настоящие). Как их заставить выглядеть хорошо-то? )

Post's attachments

screen.jpg 27.38 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

13

Re: Дубли главной страницы вида /index.php?start=

mfa, вот такой вот код стоит попробовать:

RewriteBase /
RewriteCond %{QUERY_STRING} do=lastcomments$
RewriteRule (.*) / [R=301,L]

Re: Дубли главной страницы вида /index.php?start=

Здравствуйте! Сделал.

Теперь ссылка на последние комментарии (/?do=lastcomments) сразу выдает

Moved Permanently

The document has moved here.

15

Re: Дубли главной страницы вида /index.php?start=

mfa пишет:

Теперь ссылка на последние комментарии (/?do=lastcomments) сразу выдает

Я думал, что тебе и ее тоже заодно надо редиректить, а почему нет?
Ну тогда так попробуй:

RewriteBase /
RewriteCond %{QUERY_STRING} cstart=([0-9]+)&do=lastcomments$
RewriteRule (.*) / [R=301,L]

16 (21.03.2013 13:37 отредактировано mfa)

Re: Дубли главной страницы вида /index.php?start=

Попробовал - не получилось (.

У меня ссылка на комментарии идет такая

сайт.сом/?do=lastcomments

Внутри список всех комментариев, разбитый на 10 страничек (по 300 штук на страничке).

при нажатии на страничку 2 сразу выдает такой адрес:

сайт.сом/index.php?cstart=2&do=lastcomments

Быть может, альтернативы и нет? Просто если ставить сайт.сом/page1 там или еще какие адреса - редиректит на главную (полный аксесс выложил выше).

Посмотрел на парочке других сайтов

http://www.heroturko.me/?cstart=2&do=lastcomments#comment
http://dle-news.ru/?cstart=2&do=lastcomments#comment

у того же херотурко или самого DLE!. Получается - везде эта конструкция родная. Видимо, красивые адреса комментариев - не дле-шный конек )

Спасибо за помощь.

17

Re: Дубли главной страницы вида /index.php?start=

mfa, Я уже совсем запутался... Чего тебе добиться то надо было? Красивых адресов или редиректа с этих страниц на главную?
Я понял, что все эти адреса являются несуществующими и от них надо избавиться...

Re: Дубли главной страницы вида /index.php?start=

Извини, Алаичъ - совсем я заработался с этими весами страничек. Просто думал, что у комментариев тоже есть нормальные адреса 2-3-4... страничек. А они такие как есть и, причем везде. Зря проблему поднял ) Пусть будут как есть сейчас - не критично.

Еще раз спасибо за помощь!

19

Re: Дубли главной страницы вида /index.php?start=

Добрый день. У меня сайт на джумле. Подскажите, считается ли mysite.ru/index.php дублем главной страницы? Стоит ли его закрывать от индексации? И еще, я в .htaccess убрал index.php  в названии страниц, то есть было mysite.ru/index.php/slovo.htm теперь mysite.ru/slovo.htm, но по старому адресу mysite.ru/index.php/slovo.htm все равно можно зайти на страницу slovo.htm, поэтому, чтобы избежать дублей страниц я в файл robost.txt добавил следующие строки
Disallow: /index.php/
Disallow: /index.php*
Правильно ли я сделал. И я еще совсем новичек, вчера только начал "колдовать", страницы запрещенные в robots.txt сами исчезнуть из индекса?

20

Re: Дубли главной страницы вида /index.php?start=

freedom, Не надо было вообще ничего трогать в таком случае. Нанес только вреда больше, а пользы никакой.

RewriteCond %{REQUEST_URI} ^index.php/(.*)$
RewriteRule (.*) http://mysite.ru/%1 [R=301,L]

Вот такой вот редирект должен теперь перекидывать со старых адресов на новые. Это важно.