Разница между "ввв.сайт.ру/папка" И "ввв.сайт.ру/папка/" (слэш в конце ссылки)

miker30
На сайте с 13.04.2008
Offline
88
855

Вообщем спустя года 3-4 жизни сайта понял почему его яндекс столько долго не любил и до сих пор не любит.

Фишка в том, что он (яндекс) почему-то индексировал сайт в формате "ввв.сайт.ру/папка/", а по данного вида ссылке статьи нету, просто шаблон, но ежели убрать слэш в конце ссылки и вводить "ввв.сайт.ру/папка" (без слэша на конце) - то все ок.

Вопрос: как сделать так, чтоб "ввв.сайт.ру/папка/" было эквивалентно "ввв.сайт.ру/папка"?

Не знаю есть ли необходимость давать ссылку, без проблем ее запостю по запросу.

Сейчас .штэксес у меня выглядит так:

RewriteEngine on

RewriteRule ^tag\/(.*)\/page\/(.*)$ index.php?tag=$1&p=$2

RewriteRule ^tag\/(.*)$ index.php?tag=$1

RewriteRule ^text\/(.*)\/page\/(.*)$ index.php?text=$1&ap=$2

RewriteRule ^text\/(.*)$ index.php?text=$1

RewriteRule ^form(.*)$ index.php?about=1

RewriteRule ^about\/(.*)$ index.php?about=1&aboutfile=$1

RewriteRule ^file\/(.*)$ index.php?file=1&myfile=$1

RewriteRule ^users\/page\/(.*)$ index.php?users=1&p=$1

RewriteRule ^users(.*)$ index.php?users=1

БАБЛО!!! (http://seopult.ru/ref.php?ref=2f5fe3432bed61fe) сэкономь на оптимизации издержек
S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#1

Попробуй вот так:

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

if ($do == "cat" and $category != '' and $subaction == '') {

НИЖЕ вставляем:

//решение проблемы с категориями, редирект на верный урл, добавление слеша в конец

if( $config['allow_alt_url'] == "yes" AND $category_id AND $view_template != "rss") {

$re_cat = get_url( $category_id );

if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) = '/' ) {

$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );

$re_url = reset ( $re_url );

header("HTTP/1.0 301 Moved Permanently");

header("Location: {$re_url}{$re_cat}");

die("Redirect");

}

}

//решение проблемы с категориями, редирект на верный урл, добавление слеша в конец

miker30
На сайте с 13.04.2008
Offline
88
#2
S_A_N_T_A:
Попробуй вот так:
Открываем файл /engine/engine.php и находим:

if ($do == "cat" and $category != '' and $subaction == '') {

НИЖЕ вставляем:
//решение проблемы с категориями, редирект на верный урл, добавление слеша в конец
if( $config['allow_alt_url'] == "yes" AND $category_id AND $view_template != "rss") {

$re_cat = get_url( $category_id );

if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) = '/' ) {
$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );

header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}{$re_cat}");
die("Redirect");
}
}
//решение проблемы с категориями, редирект на верный урл, добавление слеша в конец

спасибо огромное за код, только один вопрос: этот код для любых движков? у меня сателлит-х движок. просто в нем я не нашел строки необходимой.

S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#3

упс)) тогда sorry... не подойдёт)) просто читал про dle и зациклился на нём, чёт и вас под dle подписал)))

miker30
На сайте с 13.04.2008
Offline
88
#4
S_A_N_T_A:
упс)) тогда sorry... не подойдёт)) просто читал про dle и зациклился на нём, чёт и вас под dle подписал)))

Так и подумал) все ровно спасибо!)

если кому интересно, то вот подсказали на соседнем форуме решение:

В .htaccess прописать

RewriteBase /

RewriteCond %{REQUEST_URI} /$ [NC]

RewriteRule ^(.*)(/)$ $1 [L,R=301]

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий