21

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

Да насчет редиректов я как раз начал думать. Вы извините за мою неграмотность. Я только 2 дня назад начал над этим работать. Только единственное, что у меня получилось, это сделать редирект с index.php и home на главную страницу сайта. Но любая статья доступна к прочтению, если в ее адрес добавить index.php,( То есть как с ним так и без него.) а для каждый страницы такой редирект прописывать не вариант. Ниже с Вашего позволения, я выложу свой .htaccess. Я пробовал добавить Вашу часть в него, но результата не было никакого. sad

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ [url]http://mysite.ru/[/url] [R=301,L]
#######skleyka index.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /home\ HTTP/
RewriteRule ^index\.php$ [url]http://mysite.ru//[/url] [R=301,L]
#######skleyka home
##
# @version $Id: htaccess.txt 10492 2008-07-02 06:38:28Z ircmaxell $
# @package Joomla
# @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
# @license [url]http://www.gnu.org/copyleft/gpl.html[/url] GNU/GPL
# Joomla! is Free Software
##
  
  
#####################################################
#  READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your SEF url's.  If they work,
# it has been set by your server administrator and you do not need it set here.
#
#####################################################
  
##  Can be commented out if causes errors, see notes above.
Options +FollowSymLinks
  
#
#  mod_rewrite in use
  
RewriteEngine On
  
########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits
  
#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla! Directory (just / for root)
  
# RewriteBase /
  
  
########## Begin - Joomla! core SEF Section
############# Use this section if using ONLY Joomla! core SEF
## ALL (RewriteCond) lines in this section are only required if you actually
## have directories named 'content' or 'component' on your server
## If you do not have directories with these names, comment them out.
#
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
#RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
#RewriteRule ^(content/|component/) index.php
#
########## End - Joomla! core SEF Section
  
  
########## Begin - 3rd Party SEF Section
############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
#
RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
#
########## End - 3rd Party SEF Section

22

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

freedom, Любые правила редиректов надо вставлять после строки RewriteEngine On.
Переноси все туда, и мои правила в том числе, тогда все будет работать.

23

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

Попробовал перемещать эту часть кода в разные места, включая самый конец, после RewriteEngine On. Все равно нет редиректа. Эта часть работает,
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://mysite.ru/ [R=301,L]
#######skleyka index.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /home\ HTTP/
RewriteRule ^index\.php$ http://mysite.ru// [R=301,L]
#######skleyka home
но Ваш код не делает редиректа. В чем я мог ошибиться? Извините за назойливость

24

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

freedom, Пока нет идей sad

25

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

Добрый день! Подскажи, пожалуйста! Уже пол-интернета перерыл((( У меня есть урлы вида site.com/proizvoditel.html и есть пагинация на данных страницах. Так вот, никак не могу понять как сделать редирект со страниц вида site.com/proizvoditel.html?page=1 на site.com/proizvoditel.html. В первую очередь нужен редирект только с первых страниц, т.к. они создают дубли. Заранее спасибо за помощь!

26

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

glamlemon, Так:

RewriteBase /
RewriteCond %{QUERY_STRING} ^page=1$
RewriteRule (.*) $1? [R=301,L]

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

Сегодня заметил, что в индексе яндекса и гугла есть страницы типа /index.php?do=cat&category= . Скажите, как убрать их? Странно, что появилось такое после переезда на новый домен... Хотя, может и не замечал раньше...

28

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

Axel, Так я уже писал не раз и на форуме и на блоге у меня есть статья о том, как убрать параметры из URL.

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

admin, а можешь носом ткнуть? Я перед написанием сообщения долго лазил по форуму и блогу, но так ничего и не нашел.

30 (12.12.2014 04:55 отредактировано Axel)

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

Поднимал тему на оф. форуме движка — тема

Привел там содержание своего .htaccess . Кстати, вот он:

+ открыть спойлер

DirectoryIndex index.php
RewriteEngine On
RewriteCond %{HTTP_HOST} ^addgadget\.net
RewriteRule ^(.*)$ http://wingad.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.addgadget\.net
RewriteRule ^(.*)$ http://wingad.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.wingad\.ru$ [NC]
RewriteRule ^(.*)$ http://wingad.ru/$1 [R=301,L]
RewriteBase /
RewriteRule ^(.*)page/1(/|)$ $1 [R=301,L]
# Редиректы
RewriteBase /
        ### Решение проблемы адресов с косяком на конце .htm .ht .h
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*)\.htm$
RewriteRule ^(.*)\.htm$ $1.html [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*)\.ht$
RewriteRule ^(.*)\.ht$ $1.html [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*)\.h$
RewriteRule ^(.*)\.h$ $1.html [R=301,L]
RewriteRule ^page/([0-9]+)(/?)$ index.php?cstart=$1 [L]
# Сам пост
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&seourl=$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&seourl=$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&seourl=$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&seourl=$4 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]
RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$2&news_page=$1&seourl=$3 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$1&newsid=$2&seourl=$3 [L]
RewriteRule ^([0-9]+)-(.*).html$ index.php?newsid=$1&seourl=$2 [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 ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]
# поиск по доп полям
RewriteRule ^xfsearch/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
RewriteRule ^xfsearch/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
# вывод для отдельного юзера
RewriteRule ^user/([^/]*)/rss.xml$ engine/rss.php?subaction=allnews&user=$1 [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 ^user/([^/]*)/news(/?)+$ index.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)/news/page/([0-9]+)(/?)+$ index.php?subaction=allnews&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news/rss.xml(/?)+$ engine/rss.php?subaction=allnews&user=$1 [L]
# вывод всех последних новостей
RewriteRule ^lastnews(/?)+$ index.php?do=lastnews [L]
RewriteRule ^lastnews/page/([0-9]+)(/?)+$ index.php?do=lastnews&cstart=$1 [L]
# вывод в виде каталога
RewriteRule ^catalog/([^/]*)/rss.xml$ engine/rss.php?catalog=$1 [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 ^favorites(/?)+$ index.php?do=favorites [L]
RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L]
RewriteRule ^rules.html$ index.php?do=rules [L]
RewriteRule ^statistics.html$ index.php?do=stats [L]
RewriteRule ^addnews.html$ index.php?do=addnews [L]
RewriteRule ^rss.xml$ engine/rss.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 ^([^.]+)/rss.xml$ engine/rss.php?do=cat&category=$1 [L]
RewriteRule ^page,([0-9]+),([^/]+).html$ index.php?do=static&page=$2&news_page=$1&seourl=$2 [L]
RewriteRule ^print:([^/]+).html$ engine/print.php?do=static&page=$1&seourl=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1&seourl=$1 [L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html)\ HTTP/
RewriteRule .* / [R=301,L]

На все это я получил ответ от целсофта:

Из за того что вы вообще модифицировали этот файл вы и получили проблемы. Потому делаете в нем 301 редиректы на ЧПУ редиректы.

Теперь же чтобы убрать те ссылки что у вас получились, редиректы нужно делать уже не в файле .htaccess, в самом PHP скрипте, потому как это ссылки уже без ЧПУ. И на PHP проверять URL, и в случае его некорректности перенаправлять на верный URL. Готового кода для этого у меня нет, поэтому я вам его к сожалению предоставить не могу.

Скажите, как проблему-то решить? Обычным редиректом уже не обойтись...

31

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

с /index.php?do=cat&category= не факт, что можно что-то сделать т.к. это стандартный вывод в dle, но в вашем случае ссылка имеет вид /index.php?do=cat&category=категория/подкатегория/, по куску &category=категория/подкатегория/ думаю не проблема редирект сделать. Вернуть стандартный .htaccess не помешало бы и вот тут нужная статья, пробуйте, если чего, то пишите smile

32 (13.12.2014 01:37 отредактировано Axel)

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

Пробовал восстановить .htaccess из дистрибутива — проблему не решило. Значит тут уже проблема должна решаться на уровне php hmm

33 (21.12.2015 20:43 отредактировано ds8880)

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

Здравствуйте.

После обновления до версии 10.6 и выполнения оптимизации title из 1 части, добрался до 2 части и возникла проблема после применения пункта "Редиректы с index.php или index.html на сайт":

### Редиректы с index.php или index.html на сайт 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html)\ HTTP/ 

RewriteRule .* / [R=301,L] 

Дело в том, что с http://sait.ru/index.php с указанным кодом и без него происходит редирект на http://sait.ru/, а c http://sait.ru/index.html в адресной строке появляется хвост http://sait.ru/?do=static&page=index&seourl=index

страница http://sait.ru/index.html - 301
страница http://sait.ru/?do=static&page=index&seourl=index - 404

Получается, что с http://sait.ru/index.html идет 301 редирект на несуществующую страницу http://sait.ru/?do=static&page=index&seourl=index

Стандартный .htaccess и engine.php пробовал вернуть, проблема таже, то есть этот хвостик генерирует движок.

Контент главной страницы прописан в самом файле main.tpl с помощью [aviable=main][/aviable]

Как избавиться от этого хвоста?

34 (24.12.2015 02:06 отредактировано ds8880)

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

Придумал вот такой вариант решения.

Открыть /engine/modules/static.php найти :

@header ( "HTTP/1.0 404 Not Found" ); 

Выше вставить :

if (trim ($name) == "index") 
{ 
header ("HTTP/1.1 301 Moved Permanently"); 
header ("Location: /"); 
exit (); 
} 

Теперь с sait.ru/index.html будет 301 редирект на sait.ru/?do=static&page=index&seourl=index, а с этого адреса идет 301 редирект на sait.ru/

Представляется, что данный вариант не идеален с точки зрения seo, так как два подряд 301 редиректа, думаю, не очень хорошо. Возможно ошибаюсь.

АлаичЪ, хотелось бы ознакомиться с Вашим мнением, а также людей, хорошо разбирющихся в seo.


В идеале было бы хорошо, чтобы 301 редирект с sait.ru/index.html шел сразу на sait.ru/ - думаю найдется решение на php типа: если статической страницы с адресом sait.ru/index.html не сушествует, то был бы сразу 301 редирект на sait.ru/

35

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

Проблему решил.

Открываем /engine/modules/static.php и в самом конце файла находим:
 

    @header( "HTTP/1.0 404 Not Found" );
    $lang['static_page_err'] = str_replace ("{page}", $name.".html", $lang['static_page_err']);
    msgbox( $lang['all_err_1'], $lang['static_page_err'] );

Заменяем на:

  
if(trim($name) == "index")
{
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: /");
    exit();
}
    @header("HTTP/1.0 404 Not Found");
    @header("Status: 404 Not Found");
    @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
    exit();

Теперь, с sait.ru/index.html идет 301 редирект на sait.ru/ и никаких промежуточных звеньев, как то sait.ru/?do=static&page=index&seourl=index, нет.

36

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

Добрый день. Уже который день роюсь, не могу найти как исправить. Видимо дурак. Подскажите пожалуйста.
Вон как на скриншоте выше Google показывает варианты дубля главной страницы. Как их можно убрать, правильно сделать редирект на главную. Или у меня на сайте что-то не так настроено, что какую билеберду не напиши к главной странице, то откроет главную.