Тема: Очистка URL для тегов и результата поиска

Вроде еще никто не интересовался: получилось ли у кого-нибудь реализовать вот такую интересную штуку - http://www.beausmith.com/mt/2008/12/cle … arches.php

В двух словах, когда нажимаешь на тег или вбиваешь поисковый запрос, то в окошке браузера отображается вот такой вот неудобоваримый адрес:
http://chezbeau.com/cgi-bin/mt/mt-searc … p;limit=20

а вот там описан способ превратить этот адрес в такой :
http://chezbeau.com/tag/tomato 
что гораздо более симпатично.

Попробовал реализовать - не получилось (хостинг Ру-центр).
Кто-нибудь еще пытался?

2

Re: Очистка URL для тегов и результата поиска

Да, это просто сделать. Там описан принцип. У меня на всех сайтах сделано так, в том числе и на этом.

3

Re: Очистка URL для тегов и результата поиска

Я бы назвал эту тему «Нормальные URL у тегов» :) Некоторые называют это fancy, seo-friendly.

Re: Очистка URL для тегов и результата поиска

saahov пишет:

Я бы назвал эту тему «Нормальные URL у тегов» :) Некоторые называют это fancy, seo-friendly.

да, я так и сделал, как там описано, но он по новому УРЛу выдает, что нету такой страницы :( не могу понять в чем дело, может модуль какой на хостинге не подключен?

5

Re: Очистка URL для тегов и результата поиска

Может быть. Если сервер — Apache, то должен присутствовать mod_rewrite.

Re: Очистка URL для тегов и результата поиска

Разобрался наконец-то (с помощью службы поддержки хостера), что у меня не работало. Но, как обычно, все не слава богу :)
URL получается вида http://chezbeau.com/tag/redtomato  вместо http://chezbeau.com/tag/red tomato
и в выводе он пишет «Записи, связанные с тегом «redtomato» 
Может, я конечно и привередничаю, но, мало ли, может кто решил этот вопрос более изящно?

(знаю-знаю, можно назвать тег red_tomato, но это как-то не то...)

7

Re: Очистка URL для тегов и результата поиска

Нужно в том месте, где у вас формируется URL (в шаблонах) добавить атрибут к тегу encode_url="1".

Пример:

Теги записи: <MTEntryTags glue=", "><a href="http://example.com/tag/<MTTagName encode_url="1" />" rel="tag"><MTTagName /></a></MTEntryTags>

Re: Очистка URL для тегов и результата поиска

saahov пишет:

Нужно в том месте, где у вас формируется URL (в шаблонах) добавить атрибут к тегу encode_url="1".

Пример:

Теги записи: <MTEntryTags glue=", "><a href="http://example.com/tag/<MTTagName encode_url="1" />" rel="tag"><MTTagName /></a></MTEntryTags>

Отлично!
Спасибо! :)

9 Отредактировано lexxa (27:01:2010 13:50:08)

Re: Очистка URL для тегов и результата поиска

Тоже решил сделать красивые тэги :)
споткнулся на вот этом пункте:

Update search form.

This requires a few more invasive changes:

A: add class search-form to the <form> element

как добавить этот класс в форму поиска?

и в догонку как изменить правило rewrite чтобы оно работало на всех блогах и доменах?

RewriteRule ^tag/(.*)$ /cgi-bin/mt5/mt-search.fcgi?blog_id=1&tag=$1&limit=20
RewriteRule ^search/(.*)$ /cgi-bin/mt5/mt-search.fcgi?search=$1&IncludeBlogs=1&limit=20

10

Re: Очистка URL для тегов и результата поиска

Добавление класса к форме поиска — это опционально, можно и не делать.
Но если нужно, то делается так:

<form class="search-form">

Про разные домены:
http://movable-type.ru/wiki/Нормальные_URL_у_тегов

11

Re: Очистка URL для тегов и результата поиска

saahov пишет:

Добавление класса к форме поиска — это опционально, можно и не делать.
Но если нужно, то делается так:

<form class="search-form">

Про разные домены:
http://movable-type.ru/wiki/Нормальные_URL_у_тегов

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

12

Re: Очистка URL для тегов и результата поиска

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

Там приводится в пример такая ситуация:

— По адресу example.com/cgi-bin/mt/ располагается админка.
— Путь на сервере к этой папке для этого домена — /home/username/example.com/cgi-bin/mt.
— Второй блог располагается по адресу example.org. Для него стандартное расположение папки cgi-bin будет вида /home/username/example.org/cgi-bin/mt. Поэтому необходимо для домена example.org переназначить расположение папки cgi-bin, чтобы при запросе example.org/cgi-bin/mt/ обрабатывались скрипты из каталога /home/username/example.com/cgi-bin/mt.

Сейчас добавлю эту информацию в статью :)

13

Re: Очистка URL для тегов и результата поиска

saahov пишет:

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

Там приводится в пример такая ситуация:

— По адресу example.com/cgi-bin/mt/ располагается админка.
— Путь на сервере к этой папке для этого домена — /home/username/example.com/
— Второй блог располагается по адресу example.org. Для него стандартное расположение папки cgi-bin будет вида /home/username/example.org/cgi-bin/mt. Поэтому необходимо для домена example.org переназначить расположение папки cgi-bin, чтобы при запросе example.org/cgi-bin/mt/ обрабатывались скрипты из каталога /home/username/example.com/cgi-bin/mt.

Сейчас добавлю эту информацию в статью :)

так, какая-то путаница начинается :) Корневой домен, если можно так выразится example.com
его содержание, в том числе файлы инсталляции МТ лежат в папке
/home/username/cgi-bin/mt
/home/username/mt-static
а домен example.org
лежит в папке:
/home/username/example_org/
и все скрипты выполняются из папки
/home/username/cgi-bin/mt
так что папка /home/username/example_org/сgi-bin/mt
в принципе не существует и никакие ссылки на неё не показывают, так как тогда терялся бы весь смысл МТ, когда на одной платформе организовывается много блогов, в том числе на разных доменах. так ведь?

На данный момент у меня на example.com красивые урлы тэгов, но сами записи по этим урлам не отображаются.
на example_org  при нажатии на тэг кривые урлы, но они отображаются.
RewriteRule я сделал таким:

RewriteRule ^tag/(.*)$ http://atmocube.ru/cgi-bin/mt5/mt-searc … p;limit=20
RewriteRule ^search/(.*)$ http://atmocube.ru/cgi-bin/mt5/mt-searc … p;limit=20

файл .htaccess лежит в папке: /home/username/
вообщем я тут ещё понаписал на страницу текста, но всё стёр. В итоге понял почему ничего не работает. Проблема в том, что есть сайты, а есть блоги. Так вот при формировании урла для тэга, система не может понять какой blogURL брать, если тэг может быть как на сайте так и на блоге. Плюс до сих пор у меня не работает поиск по тэгам по всем блогам и сайтам. Видимо это всё одна проблема. На данный момет всё откатываю обратно. :(
А этот мануал по формированию красивых урлов хорош только для одного блога. Ну может нескольких, но не для сайтов.

14

Re: Очистка URL для тегов и результата поиска

Можно вместо blogURL напрямую указывать адрес сайта, я так делаю :)

15

Re: Очистка URL для тегов и результата поиска

Привет!

Кажется, нашёл решение для «зачистки» УРЛов для нескольких блогов (у меня на одном сервере)

Коротко описал - здесь
Там же можно и проверить, в т.ч.«Нормальные УРЛы» Поиска

Извиняюсь, если повторяюсь... :)