Нужно Чпу тегов Dle 10.0

12
P7
На сайте с 12.05.2010
Offline
45
4003

Всем привет! Друзья помогите за монету до 500 рублей

Нужно сделать чтобы теги на dle имели вид:

http://сайт/tags/schaste.html

или

http://сайт/tags/schaste/

вместо подобного:

http://сайт/tags/%F0%EE%E4%ED%FB%E5/

Тонкости:

При этом заголовок тега должен остаться не изменным. Если был добавлен тег к новости "счастье",

то ссылка преобразовывалась в транслит вида http://сайт/tags/schaste.html

а сам тег при этом оставался неизменным "счастье" (в полной, краткой, в облаке тегов, в title тегов)

Замена нужна только в url тега, всё остальное без изменений.

Дополнительно:

Также в правилах .htaccess нужно прописать редирект:

# Редирект для тегов (чтобы в конце URL был /) для тега с http://сайт/tags/schaste/

(если тег осуществлен так http://сайт/tags/schaste.html

то редирект требуется только на конечный .html без / в конце)

===========

p.s. имеется хак транслит тегов для dle. но в нем меняются и ссылки и заголовки на транслит.

И содержимое тегов не выводится

p.p.s dle 10.0

Буду рад за помощь!

firstPR
На сайте с 24.02.2013
Offline
15
#1

http://сайт/tags/%F0%EE%E4%ED%FB%E5/ - это http://сайт/tags/родные/

Если тег сделать на английском то он будет так отображаться http://сайт/tags/rodnue/

Тут всё со стороны сео оптимизации всё правильно сделано и ничего менять не нужно, это специально скрипт кодирует русские символы в urlencode для поисковиков.

Создаём скриптик php

Вносим туда:

<?=urldecode("%F0%EE%E4%ED%FB%E5");

На выходе получаем :

родные

P.S: А 500 рублей на пиво потратьте 😂

P7
На сайте с 12.05.2010
Offline
45
#2

Да, всё верно, если на английском то всё ок. Но нужно, чтобы при добавление русского тега, формировался url как и у новостей на dle.

про скриптик php

Вносим туда:

<?=urldecode("%F0%EE%E4%ED%FB%E5");

не совсем понял...

...это ведь только для одной новости тег поменяется. А так, чтобы это было у всех новостей, которые добавляются с тегами.

---------- Добавлено 27.07.2013 в 10:10 ----------

Да, хотя с точки зрения Seo вроде все правильно. Но вот где то прочитал... что ссылки вида

http://сайт/tags/%F0%EE%E4%ED%FB%E5/

и

http://сайт/tags/родные/

разные и на движке, если вставить http://сайт/tags/родные/ не будет открываться. Хотя проверил всё работает что так, что так.

а это дубли получаются... да и не красиво.

возможно ошибаюсь где то.

При этом теги для сайта нужны обязательно. И хочется сделать по человечески структуру...

вида http://сайт/tags/rodnie/

WebAlt
На сайте с 02.12.2007
Offline
262
#3

ТС, не морочьте себе голову, это не дубли, а одна ссылка. В DLE всё правильно сделано в этом плане.

siv1987
На сайте с 02.04.2009
Offline
427
#4
pq777pq:
Также в правилах .htaccess нужно прописать редирект:

В правилах htaccess транслиты не делаются, разве что писать по редиркту для каждого тега.

P7
На сайте с 12.05.2010
Offline
45
#5
WebAlt:
ТС, не морочьте себе голову, это не дубли, а одна ссылка. В DLE всё правильно сделано в этом плане.

Да, походу точно заморочился! Добавлю несколько тегов, посмотрю как будут в индексе. Думаю всё будет ок. И не стоит тогда ничего делать с ними.

Спасибо Всем. ))

P7
На сайте с 12.05.2010
Offline
45
#6

И всё таки эти страницы для поисковой абсолютно разные!

http://8dle.ru/tags/%F8%E0%E1%EB%EE%ED%FB/

и

http://8dle.ru/tags/шаблоны/

Получаются дубли!

живой пример:

url:www.8dle.ru/tags/шаблоны под dle/ | url:8dle.ru/tags/шаблоны под dle/

http://clip2net.com/s/5ty5U7

А если бы запретить один хотябы открытие по одному адресу, или сделать склейку, то было бы всё хорошо.

А при нынешнем состоянии теги делают мусорные дублирующие страницы на сайте.

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

http://8dle.ru/tags/%F8%E0%E1%EB%EE%ED%FB/

и

http://8dle.ru/tags/шаблоны/

Я думаю многим будет полезно решение этого косяка!

siv1987
На сайте с 02.04.2009
Offline
427
#7
pq777pq:
И всё таки эти страницы для поисковой абсолютно разные!

разные в том случае, если разная кодировка.

%F8%E0%E1%EB%EE%ED%FB и %D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B для ПС разные урл'ы, хотя и представляют одно и тоже слово.

pq777pq:
Я думаю многим будет полезно решение этого косяка!

Решение этого косяка - кодировать ссылки и будет всем счастье. Что собственно в движке и делается.

В дле даже есть обработка, вот тут можете и сделать редирект


if ( $config['charset'] == "windows-1251" AND $config['charset'] != detect_encoding($tag) ) {
$tag = iconv( "UTF-8", "windows-1251//IGNORE", $tag );
}
P7
На сайте с 12.05.2010
Offline
45
#8
siv1987:
разные в том случае, если разная кодировка.
%F8%E0%E1%EB%EE%ED%FB и %D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B для ПС разные урл'ы, хотя и представляют одно и тоже слово.


Решение этого косяка - кодировать ссылки и будет всем счастье. Что собственно в движке и делается.

В дле даже есть обработка, вот тут можете и сделать редирект

if ( $config['charset'] == "windows-1251" AND $config['charset'] != detect_encoding($tag) ) {
$tag = iconv( "UTF-8", "windows-1251//IGNORE", $tag );
}

Хм... можно поподробней! Где это поставить ... в engine.php или index.php или в совсем другое )

siv1987
На сайте с 02.04.2009
Offline
427
#9

Это нигде ставить не нужно, это уже есть. А вот в этом блоке можете сделать редирект на urlencode($tag) если в теге окажется кириллица.

P7
На сайте с 12.05.2010
Offline
45
#10
siv1987:
Это нигде ставить не нужно, это уже есть. А вот в этом блоке можете сделать редирект на urlencode($tag) если в теге окажется кириллица.

siv1987, можно немного поточнее, как сделать такой редирект... Как бы я Вам был благодарен ))

Есть код:

$tag = urldecode ( $_GET['tag'] );

if ( $config['charset'] == "windows-1251" AND $config['charset'] != detect_encoding($tag) ) {

$tag = iconv( "UTF-8", "windows-1251//IGNORE", $tag );

}

$tag = htmlspecialchars ( strip_tags ( stripslashes ( trim ( $tag ) ) ), ENT_COMPAT, $config['charset'] );

define( 'CLOUDSTAG', $tag );

$tag = @$db->safesql ( $tag );

$url_page = $config['http_home_url'] . "tags/" . urlencode ( $tag );

$user_query = "do=tags&amp;tag=" . urlencode ( $tag );

Но как сделать, чтобы при открытии ссылки тега:

/tags/счастье/

в урл отображалось

/tags/%F1%F7%E0%F1%F2%FC%E5/

чтобы в индексе не появились 2 одинаковых страницы с адресами:

/tags/%F1%F7%E0%F1%F2%FC%E5/

/tags/счастье/

Помогите пожалуйста

12

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