siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009

Яндекс к нему нейтрально относится, а вот "ранжирование" от такого ИД в ссылке практически сводится на нет. Советую его убрать пока есть возможность. :)

vandamme:
так надо одну страницу редиректить или по маске много страниц?

Вот блин, а ведь верно, сколько там страниц для редиректа то?

Если их несколько, можно просто для каждой прописать свой редирект отдельно. Или решили перейти с одного вида чпу на другой?

Хз, я тестил у себя - работает. Поковыряйте базу, может поля не совпадают.

awilum:
>MediaWiki интегрирована с форумом?
к.о. это медиа вики, причем тут форум?

awilum, простите, а что такое "к.о."?

Вот прописал я в файле r.php такой код:
Я не совсем понял каким образом надо подключить таблицы

:)

Таблицы выбираются во время sql запроса, подключится нужно к mysql и выбрать базу данных.

Ладно, вот полностью рабочий код


<?php
#проверяем если ид числовой
if( !is_numeric($_SERVER['QUERY_STRING']) )
{
echo ' Недопустимый формат ID';
exit;
}

#mysql_host - mysq хост
#login - логин от бд
mysql_connect("mysql_host", "login", "pass")
or die ('Could not connect to MySQL');

#db - имя базы данных
mysql_select_db ("db")
or die ('Could not select database');

$row = mysql_query( 'SELECT id,alt_name FROM dle_post where id='.mysql_escape_string($_SERVER['QUERY_STRING']) );
$cpu = mysql_fetch_assoc($row);

if( empty($cpu['id']) )
{
echo ' ID пуст ';
exit;
}

$url = $cpu['id'].'-'.$cpu['alt_name'].'.html';
mysql_close();

header( 'Location: /'.$url, true, 301 );
exit;
?>

После отладки, если ИД не пройдет проверку можно редиректить всех на главную страницу сайта.

MediaWiki интегрирована с форумом?

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

например для дле:


#alt_name - сео_тайтл
#dle_post - таблица
$row = mysql_query( 'SELECT id,alt_name FROM dle_post where id='.mysql_escape_string($_SERVER['QUERY_STRING']) );
$cpu = mysql_fetch_assoc($row);

$url = $cpu['id'].'-'.$cpu['alt_name'].'.html';

#редирект
header( 'Location: /'.$url, true, 301 );
exit;

Получим ссылку /123-тайтл-новости

Подскажем - редирект на php :)

RewriteRule ^(\d+).html$ r.php?$1 [L]

RewriteEngine On


RewriteCond {QUERY_STRING} ^in=index0.php
RewriteRule .* http://domen/? [L,R=301]

RewriteCond {QUERY_STRING} ^in=priceuslug.php
RewriteRule .* http://domen/prais-list.html? [L,R=301]

и далее в том же духе по этому образу.

Более интуитивный вариант:

RewriteCond %{REQUEST_URI} !robots.txt$ [NC]

RewriteRule (.*) http://newsite.ru/$1 [R=301,L]

Смотря в каком количестве нужно передать тиц и пр. :)

Всего: 6568