Просмотр полной версии : TYPO3, SEO-edition ???
Valery Romanchev
29.12.2007, 00:59
Вопрос в том, что туда должно войти и как это должно быть сделано.
исходный список
Отлключить генерацию всех заголовков в хедере и генерить их самим (в этом разделе есть нормальный пример TS - он подойтет под самые замомороченные придумки сеошников по title, description и прочему)
google site map (там кстати правила наверняка часто меняются...)
ставить гугле-аналитику конечно (как я понимаю, без экстеншена)
есть еще экст для специальной сеошной карты сайта
нужен экстеншен для автоматической подстановки сслылок на ключевые слова - есть несколько словарей, которые делают автоматическую линковку
RealURL либо simulate static (кстати - у меня результаты по google page rank у сайта, который был в simulate static оказались выше, чем у аналогичных с RealURL - впрочем это было полтора года назад.. )
если несколько сайтов в системе - то для каждого свой robots.txt (для этого есть экст)
переопределение h1...h5, p и прочего в css_styled_content - чтобы был более чистый HTML код
элемент php content в двух вариантах (кешируемы и некешируемый) - чтобы вставлять коды всяких сапов
ab_linklist - это если сильно нужен собсвтенный каталог без прямых ссылок
наследование левой\правой колонок (и футера или др. блоков) вниз по дереву (чтоб было удобно вставлять всясечкие вещи в разделы)
всякие блоговые и web 2.0 штуки типа послать другу и добавить в закладки, в digg (хотя это не совсем по теме, но имхо надо иметь готовое решение под это)
статистика, но только не тайповская внутренняя, а лучше phpmyvisisits дополненный и откорректированный список
Отлключить генерацию всех заголовков в хедере и генерить их самим (в этом разделе есть нормальный пример TS - он подойтет под самые замомороченные придумки сеошников по title, description и прочему)
google site map (там кстати правила наверняка часто меняются...)
ставить гугле-аналитику конечно (как я понимаю, без экстеншена)
есть еще экст для специальной сеошной карты сайта
нужен экстеншен для автоматической подстановки сслылок на ключевые слова - есть несколько словарей, которые делают автоматическую линковку
RealURL либо simulate static (кстати - у меня результаты по google page rank у сайта, который был в simulate static оказались выше, чем у аналогичных с RealURL - впрочем это было полтора года назад.. )
если несколько сайтов в системе - то для каждого свой robots.txt (для этого есть экст)
переопределение h1...h5, p и прочего в css_styled_content - чтобы был более чистый HTML код
элемент php content в двух вариантах (кешируемы и некешируемый) - чтобы вставлять коды всяких сапов
ab_linklist - это если сильно нужен собсвтенный каталог без прямых ссылок
наследование левой\правой колонок (и футера или др. блоков) вниз по дереву (чтоб было удобно вставлять всясечкие вещи в разделы)
всякие блоговые и web 2.0 штуки типа послать другу и добавить в закладки, в digg (хотя это не совсем по теме, но имхо надо иметь готовое решение под это)
статистика, но только не тайповская внутренняя, а лучше phpmyvisisits
RSS из ньюсов и контента для нашего любимого Я. Скорость индексации с и без - небо и земля.
возможно - lightbox для картинок, потому что в случае Click Enlarge генерится много JS кода
TS код для вставки версии для печати
настройки robots.txt, чтобы версия для печати не индексировалась???доп. инф
http://typo3.org/documentation/document-library/extension-manuals/seo_dynamic_tag/0.0.1/view/1/4/
http://typo3.fruit-lab.de/
http://www.dawsoninteractive.com/articles/article/typo3-seo-introduction/
http://www.dawsoninteractive.com/articles/article/typo3-seo-part-1-title-tags/
и вот они чеклист написали
http://www.dawsoninteractive.com/articles/article/seo-checklist/
Эксты на эту тему
seo_basics
seo_dynamic_tag
1. и поправить его для ньюсов, если можно
2. есть ли карта для ньюсов?
3. был экстеншени для аналитики, причем новой
4. можно и просто ТС написать
5. ай... если только управляемый есть, например - в этой ветке все вкусности кажут на ид=1, а в соседней - на ид=3, а то тупой слив всех одинаковых ключевиков со всего сайта на 1 страницу. ну и потом если у меня тошнотность высокая - что, прм-таки с каждого ключевика ссылку делать? ай... тогда спецтег для выделения проще, да еще бы с кнопочкой в редакторе
6. симулейт статик лучше в принципе, но опять -таки ньюсы...
7. +
8. +++!
9. +- надеюсь, гиперконтекст скоро запустят
10. -+ очччень редко надо.
11. ну это если с готовыми шаблонами гнать
12. добавлять так по полной программе - во все юзаемые хоть кем-то
13. +- без острой необходимости, у нас все равно рейтингами будешь обвешиваться
+ 14. RSS из ньюсов и контента для нашего любимого Я. Скорость индексации с и без - небо и земля.
Valery Romanchev
29.12.2007, 03:07
1. и поправить его для ньюсов, если можно
да, это надо вписать.
Т.е. идея в том, что будет здоровый кусок TS кода, с которым можно извращаться как угодно:
- задать начальную и конечную фразу
- брать данные из title, subtile или description страницы
- настроить или запретить наследование
вставлять в этот TS условия, или юзать константы, которые уже вставлять в страницах..
2. есть ли карта для ньюсов?
да, есть для произв. записей (я ее ставил для ньюсов)
3. был экстеншени для аналитики, причем новой
я имею ввиду, что может и не нужен экст, потому что он всего навсего вставляет код перед </body>
6. симулейт статик лучше в принципе, но опять -таки ньюсы...
а чем ньюсы плохи? для них тоже можно урлы короткими делать
кстати RealURL незаменим, если надо сохранить старые URL страниц типа как здесь http://watergeo.ru/uslugi.shtml
+ 14. RSS из ньюсов и контента для нашего любимого Я. Скорость индексации с и без - небо и земля.Да, это обязательно... причем там не все просто, долго возились с этим.
а чем ньюсы плохи? для них тоже можно урлы короткими делать
у симулейт статик адреса вроде хранятся в ФЕ-кеше, и по доке после очистки кеша надо срочно закешировать все страницы?
а можно настроить РеалУрл для работы без иерархии, по комбинации тайтл+ид для новостей и прочих плагинов и алиас/тайтл+ид для страниц?
что-то было на тему фикседПостВарс или как их там, чтоб "get rid of "article" in URL"?
типа Mysite.ru/vot-moya-ktutaya-news-456.html
Valery Romanchev
05.01.2008, 02:07
у симулейт статик адреса вроде хранятся в ФЕ-кеше, и по доке после очистки кеша надо срочно закешировать все страницы?
ну они вроде сами должны, т.е. урлы не должны перестать работать
а можно настроить РеалУрл для работы без иерархии, по комбинации тайтл+ид для новостей и прочих плагинов и алиас/тайтл+ид для страниц?
что-то было на тему фикседПостВарс или как их там, чтоб "get rid of "article" in URL"?
типа Mysite.ru/vot-moya-ktutaya-news-456.htmlнаверняка можно сделать, но может придется писать кастомную функцию какую-нить
Кстати, а номер зачем нужен? (самим удобнее с номером конечно)
в симулайт статик по дефолту вот так для страниц:
http://www.some-site.org/Conference_Event.188.0.html
или вот так http://www.some-site.org/Conference_Event.188.html (http://www.some-site.org/Conference_Event.188.0.html)
и вот так тоже наверное http://www.some-site.org/Conference-Event.188.0.html (http://www.some-site.org/Conference_Event.188.0.html)
и вот так может быть для новостей
http://server.com/newstitle+M5aj89345.0.html
+ 14. RSS из ньюсов и контента для нашего любимого Я. Скорость индексации с и без - небо и земля.RSS чтобы в блоги его добавлять? (про яндекс новости знаю, но для этого надо быть СМИ)
Или в яндексе есть еще какие-то варианты?
Valery Romanchev
05.01.2008, 02:09
по сабжу получается следующее:
#------------------------------------------------
# Header related
#------------------------------------------------
page.config.disableAllHeaderCode = 1
# correct XHTML output
config{
doctype = <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru"
}
config {
removeDefaultJS = external
inlineStyle2TempFile = 1
}
#------------------------------------------------
# CSS including
#------------------------------------------------
page.headerData.100 = TEXT
page.headerData.100.value (
<link href="{$template_css}style.css" rel="stylesheet" type="text/css" />
)
# CSS including end -------------------------------------------------------
тут использованы seo_dynamic_tag
temp.seo = COA
temp.seo {
10 < plugin.tx_seodynamictag_pi1
10 {
# Example for the page title
#special = title
special = register
register = title
query {
select = CONCAT(`title`, ': ', `short`)
from = `tt_news`
where = `uid` = $1 && `deleted` = 0 && `hidden` = 0
var.1 = tx_ttnews[tt_news]
}
}
20 < plugin.tx_seodynamictag_pi1
20 {
# Example for a meta tag
special = register
register = description
query {
select = `bodytext`
from = `tt_news`
where = `uid` = $1 && `deleted` = 0 && `hidden` = 0
var.1 = tx_ttnews[tt_news]
maxLength = 200
}
}
30 < plugin.tx_seodynamictag_pi1
30 {
# Example for a meta tag
special = register
register = keywords
query {
select = CONCAT(`title`, ' ', `short`)
from = `tt_news`
where = `uid` = $1 && `deleted` = 0 && `hidden` = 0
var.1 = tx_ttnews[tt_news]
keywords = 1
}
}
}
page = PAGE
page.typeNum = 0
page.1 < temp.seo
page.10 = USER
page.10.userFunc = tx_templavoila_pi1->main_page
// Возможноые условия
// [globalVar = TSFE : beUserLogin > 0]
// [globalVar = TSFE:id = 1]
// [globalVar = GP:L=1]
// [PIDinRootline = 3]
// [PIDupinRootline = pages-uid, pages-uid, ...]
// формат noTrimWrap: | здесьл то, что перед| здесь то, что полсле |
##########################
# Default Inhalte #
##########################
lib.domain = TEXT
lib.domain.value =
lib.title = TEXT
lib.title.data = field:subtitle // leveltitle :-1,slide
lib.description = TEXT
lib.description.data = levelfield :-1, description, slide // levelfield :-1, subtitle, slide // leveltitle :-1,slide
lib.keywords = TEXT
lib.keywords.data = levelfield :-1, keywords, slide // levelfield :-1, subtitle, slide // leveltitle :-1,slide
lib.author = TEXT
lib.author.data = levelfield :-1, author, slide
lib.copyright = TEXT
lib.copyright.data = levelfield: 0, author
lib.robots = TEXT
lib.robots.value = index, follow
[globalVar = GP:tx_ttnews|tt_news > 0]
lib.title.data = register:title
lib.description.data = register:description
lib.keywords.data = register:keywords
[end]
#########################
# Title #################
#########################
lib.meta.title =< lib.title
lib.meta.title {
prepend = TEXT
prepend.value = {$title_begin}
prepend.required = 1
prepend.noTrimWrap = || - |
append = TEXT
append.value = {$title_end}
append.required = 1
append.noTrimWrap = | - ||
outerWrap = <title>|</title>
}
##########################
# Meta ###################
##########################
lib.meta.description =< lib.description
lib.meta.description {
required = 1
outerWrap = <meta name="description" content="|" />
}
lib.meta.keywords =< lib.keywords
lib.meta.keywords {
required = 1
outerWrap = <meta name="keywords" content="|" />
}
lib.meta.author =< lib.author
lib.meta.author {
required = 1
outerWrap = <meta name="author" content="|" />
}
lib.meat.copyright =< lib.copyright
lib.meta.copyright {
required = 1
outerWrap = <meta name="copyright" content="|" />
}
lib.meat.robots =< lib.robots
lib.meta.robots {
required = 1
outerWrap = <meta name="robots" content="|" />
}
##########################
# DC-Meta ################
##########################
lib.meta.dc.title =< lib.title
lib.meta.dc.title {
required = 1
outerWrap = <meta name="DC.Title" content="|" />
}
lib.meta.dc.description =< lib.description
lib.meta.dc.description {
required = 1
outerWrap = <meta name="DC.Description" content="|" />
}
lib.meta.dc.subject =< lib.keywords
lib.meta.dc.subject {
required = 1
outerWrap = <meta name="DC.Subject" content="|" />
}
lib.meta.dc.creator =< lib.author
lib.meta.dc.creator {
required = 1
outerWrap = <meta name="DC.Creator" content="|" />
}
lib.meat.dc.right =< lib.copyright
lib.meta.dc.rights {
required = 1
outerWrap = <meta name="DC.Rights" content="|" />
}
##########################
# emptyLine #########
##########################
lib.emptyLine = TEXT
lib.emptyLine.value (
)
##########################
# Anleitung: #############
##########################
# So wird anschließend ein Meta umdefiniert:
#lib.description.override = Eine neue Beschreibung
#lib.author.override = Author2
# So hängt man was an ein Meta hinten dran
#lib.keywords.append = TEXT
#lib.keywords.append.value = , hinten1, hinten2, hinten3
# So hängt man was an ein Meta vorne dran
#lib.keywords.prepend = TEXT
#lib.keywords.prepend.value = vorne1, vorne2, vorne3, vorne4,
# So wird eine Domain an den Seitentitel drangehängt
#lib.domain.override = MyPage.de
###########################
# Installation: ###########
###########################
# Damit die Meta's auch hirarchisch abgefragt werden können
# im Installations-Tool bei 'addRootLineFields' mit eintragen:
# subtitle,keywords,description,author
# => diese Felder können abgefragt werden mit
# lib.keywords = TEXT
# lib.keywords.data = levelfield :-1, keywords, slide
# bzw.:
# lib.title.data = leveltitle : -1, slide
page.5 = COA
page.5.10 = TEXT
page.5.10.value(
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
)
/*
page.5.20 = TEXT
page.5.20.value(
<title>Начало тега title - Тест без disableAllHeaderCode - Конец тега title</title>
)
*/
page.5.20 = COA
page.5.20 {
5 =< lib.emptyLine
10 =< lib.meta.title
15 =< lib.emptyLine
20 =< lib.meta.description
25 =< lib.emptyLine
30 =< lib.meta.keywords
35 =< lib.emptyLine
40 =< lib.meta.author
45 =< lib.emptyLine
50 =< lib.meta.copyright
55 =< lib.emptyLine
60 =< lib.meta.robots
65 =< lib.emptyLine
70 =< lib.meta.dc.title
75 =< lib.emptyLine
80 =< lib.meta.dc.description
85 =< lib.emptyLine
90 =< lib.meta.dc.subject
95 =< lib.emptyLine
100 =< lib.meta.dc.creator
105 =< lib.emptyLine
110 =< lib.meta.dc.rights
115 =< lib.emptyLine
}
page.5.90 = TEXT
page.5.90.value(
<link href="/fileadmin/templates/style.css" rel="stylesheet" type="text/css" />
)
[globalVar = TSFE : beUserLogin > 0]
page.5.90.wrap =|<link href="/typo3conf/ext/pixe_feediting/FE_editMenu/FE_editMenu_topapps.css" rel="stylesheet" type="text/css" />
[end]
page.5.100 = TEXT
page.5.100.value(
<base href="{$site_url}" />
<meta name="robots" content="index,follow" />
<meta name="revisit-after" content="2 weeks" />
<meta name="generator" content="TYPO3 4.1 CMS" />
</head>
<body>
)
page.15 = COA
page.15{
10 = TEXT
10.value(
<script type="text/javascript" src="/fileadmin/templates/script.js"></script>
<script src="https://ssl.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "....";
urchinTracker();
</script>
</body></html>
)
}
Valery Romanchev
05.01.2008, 02:35
Теперь естественно возник вопос, какую Google SiteMap юзать
наверно эту:
http://typo3.org/documentation/document-library/extension-manuals/weeaar_googlesitemap/0.4.3/view/1/2/
или вот эту
http://typo3.org/documentation/document-library/extension-manuals/mc_googlesitemap/0.4.2/view/
http://typo3.org/documentation/document-library/extension-manuals/seo_basics/0.5.1/view/1/2/#id3746288
(здесь мало фич)
Valery Romanchev
06.01.2008, 22:23
по видимому вот эту weeaar_googlesitemap пропатченную надо юзать
настройка в TS, в TS же можно сделать несколько sitemap
еще возникла идея включить в эту сборку нормальную реализацию блога (блогов) и журнала (журналов).
Valery Romanchev
11.01.2008, 03:13
еще стало понятно, что отключать полностью генерацию всего хедера
page.config.disableAllHeaderCode = 1
это не удобно - экстеншены много js вставляют - неудобно каждый раз руками подцеплять
Так что вариант с ручной генерацией хедера - будет как опция, для особо замороченных сеошников
Valery Romanchev
13.01.2008, 18:07
еще одна мысль пришла в результате обсуждения
http://forum.searchengines.ru/showthread.php?t=195653
а именно:
Если все-таки хочется иметь разделы в URL, то URL надо делать такими:
http://some.ru/67/71/
либо такими
http://some.ru/from-alias/from-realurl-path-segment/
(для дефолтового языка)
для остальных языков
http://some.ru/en/from-alias/from-realurl-path-segment/
Но не вот такими:
http://some.ru/from-alias/from-realurl-path-segment.html
и не вот такими
http://some.ru/nazvanie-str/kakaya-to-fignia-ochen-dlinnaya/
Сделать это очень просто
'segTitleFieldList' => 'tx_realurl_pathsegment,alias,uid',
$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
'init' => array(
'enableCHashCache' => 1,
'appendMissingSlash' => 'ifNotFile',
'enableUrlDecodeCache' => 0,
'enableUrlEncodeCache' => 1,
'respectSimulateStaticURLs' => 0,
'postVarSet_failureMode'=>'redirect_goodUpperDir',
),
'redirects_regex' => array (
),
'preVars' => array(
array(
'GETvar' => 'L',
'valueMap' => array(
'en' => '1',
),
'noMatch' => 'bypass',
),
),
'pagePath' => array(
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
// if needed simple URL without sections for each subpage:
// 'userFunc' => 'EXT:realurl/class.tx_realurl_dummy.php:&tx_realurl_dummy->main',
'spaceCharacter' => '-',
'languageGetVar' => 'L',
'expireDays' => 7,
'rootpage_id' => 1,
// to solve crazy problem with not found after clear cache:
'firstHitPathCache' => '1',
'segTitleFieldList' => 'tx_realurl_pathsegment,alias,uid',
// tx_realurl_pathsegment,alias,nav_title,title
),
'segTitleFieldList' => 'tx_realurl_pathsegment,alias,nav_title,uid' мне нравится больше. И для новостей - только uid.
'postVarSet_failureMode'=>'redirect_goodUpperDir' - для СЕО-эдишен вроде не катит? 404 ж не отработается. Так что 'postVarSet_failureMode'=>'' и редирект на скрипт с выделением домена (для многодоменного дерева) и перенаправлением на страницу с картой сайта.
Valery Romanchev
13.01.2008, 19:22
'segTitleFieldList' => 'tx_realurl_pathsegment,alias,nav_title,uid' мне нравится больше. И для новостей - только uid.
из за nav_title - все равно можем получить vot-takoy-uzasniy-text-v-url
некрасиво это имхо
Но если язык англ или немецкий - то наверное надо
'tx_realurl_pathsegment,alias,nav_title,title'
'postVarSet_failureMode'=>'redirect_goodUpperDir' - для СЕО-эдишен вроде не катит? 404 ж не отработается. Так что 'postVarSet_failureMode'=>'' и редирект на скрипт с выделением домена (для многодоменного дерева) и перенаправлением на страницу с картой сайта.
да, корректная 404 - это важно... я долго возился с этим на одном сайте
в итоге там сейчас в localconf.php
#$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = "http://xxxxxx.ch/page-not-found/";
//$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = "/index.php?id=51";
//$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = '/?id=51';
//$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'READFILE:fileadmin/404.html';
//$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'REDIRECT:index.php?id=51';
$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'REDIRECT:/404-error/';
$TYPO3_CONF_VARS['FE']['pageNotFound_handling_statheader'] = 'HTTP/1.0 404 Not Found';<?php
/**
* RealURL configuration
*/
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
// Default host
'_DEFAULT' => array(
// General configuration
'init' => array(
'doNotRawUrlEncodeParameterNames' => 0,
'enableCHashCache' => 1,
'respectSimulateStaticURLs' => 0,
'appendMissingSlash' => ifNotFile,
'adminJumpToBackend' => 0,
'enableUrlDecodeCache' => 1,
'enableUrlEncodeCache' => 1,
// 'postVarSet_failureMode'=>'redirect_goodUpperDir',
),
// Redirections
'redirects' => array(),
// Pre variables
'preVars' => array(
/* this is not recommended for SEO
// No cache
array(
'GETvar' => 'no_cache',
'valueMap' => array(
'no_cache' => 1,
),
'noMatch' => 'bypass',
'_DEFAULT' => array(
'type' => 'notfound'
),
),
*/
),
// Transformation method
'pagePath' => array(
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
'spaceCharacter' => '-',
// to solve crazy problem with not found after clear cache:
'firstHitPathCache' => '1',
'languageGetVar' => 'L',
'expireDays' => 3,
'rootpage_id' => '1',
),
// Fixed post variables
'fixedPostVars' => array(),
// Post variables
'postVarSets' => array(
'_DEFAULT' => array(
// news archive parameters
'archive' => array(
array(
'GETvar' => 'tx_ttnews[year]' ,
),
array(
'GETvar' => 'tx_ttnews[month]' ,
'valueMap' => array(
'january' => '01',
'february' => '02',
'march' => '03',
'april' => '04',
'may' => '05',
'june' => '06',
'july' => '07',
'august' => '08',
'september' => '09',
'october' => '10',
'november' => '11',
'december' => '12',
)
),
),
// news pagebrowser
'browse' => array(
array(
'GETvar' => 'tx_ttnews[pointer]',
),
),
// news categories
'year' => array (
array(
'GETvar' => 'tx_ttnews[cat]',
),
),
// news articles and searchwords
'article' => array(
array(
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array(
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted',
'languageGetVar' => 'L',
'languageExceptionUids' => '',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l18n_parent',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
array(
'GETvar' => 'tx_ttnews[swords]',
),
),
// PhotoBook
'photobook' => array(
array(
'GETvar' => 'tx_gooffotoboek_pi1[srcdir]'
),
array(
'GETvar' => 'tx_gooffotoboek_pi1[fid]'
),
array(
'GETvar' => 'tx_gooffotoboek_pi1[func]',
'valueMap' => array(
'thumbnails' => 'thumb',
),
),
),
),
),
// File names
'fileName' => array(
'defaultToHTMLsuffixOnPrev' => 0,
'index' => array(
//'index.html' => array(
// 'keyValues' => array(),
//),
'rss.xml' => array(
'keyValues' => array(
'type' => 100,
),
),
'rss091.xml' => array(
'keyValues' => array(
'type' => 101,
),
),
'rdf.xml' => array(
'keyValues' => array(
'type' => 102,
),
),
'atom.xml' => array(
'keyValues' => array(
'type' => 103,
),
),
'print.html' => array(
'keyValues' => array (
'print' => 1,
),
),
'print.pdf' => array(
'keyValues' => array (
'type' => 123,
),
),
),
),
),
);
?>
насчет языковых версий сайта и многодоменных конфигураций - есть настройки, что будет русский на домене
xxxx.ru
и англ на домене
xxxx.com
а что в /404-error/ ? если у нас 2 сайта в дереве и каждому из них сделать такой пас сегмент - отработает нормально?
Valery Romanchev
13.01.2008, 21:04
а что в /404-error/ ?
страница с alias'ом 404-error
если у нас 2 сайта в дереве и каждому из них сделать такой пас сегмент - отработает нормально?
по идее должно работать нормально
я давно еще тестировал - одинаковые алиасы правильно обрабатываются, если конфиг RealURL настроен на два корня - примеры в wiki.typo3.org были
алиаса? разве на них нет условия единственности в таблице?
Valery Romanchev
13.01.2008, 21:46
алиаса? разве на них нет условия единственности в таблице?
есть
но так там у меня только один сайт в дереве
Интересно!
http://typo3.org/documentation/document-library/extension-manuals/aoe_realurlpath/0.1.0/view/1/1/
1. path can be set independently from position in pagetree
2. different possibilities to create seo friendly URLs
3. supports multilanguage pages
4. supports workspaces (test different URLs in workspace preview)
5. creates direct links to each kind of shortcuts and external urls
6. collision detection (ensures that each path is unique)
It adjusts the pageheader and the page_language_overlay by this fields:
1. field for overriding complete path of a page
2. field for overriding pathsegment
3. checkbox ”exclude page from middle of a path”
Интересно!
http://typo3.org/documentation/document-library/extension-manuals/aoe_realurlpath/0.1.0/view/1/1/
[/COLOR][/U][/B]
я его поставил, мне понравилось как делает пути, лучше чем в realurl
Кстати никто не встречал расширение для realurl, чтобы генерировать имя файла по get запросам, так же как postVarSet? Мне важно, чтобы можно было задать lookUpTable.
Это надо, поскольку поисковые машины, по идее, должны больше веса давать словам в названии файла, чем словам в директории.
уже не надо, доработал напильником realurl ;)
Господа!
А если у меня адресация в тт-ньюс типа:
...news/article/11/41/
А хочется сделать типа: ...news/article-11-41/
Как реализовать?
Ну так как, есть ли вариант с news/article-ID/ на весь сайт в целом?
Добрый день.
Разбораюсь с seo_dynamic_tag.
Тут мне не понятны такие моменты.
Для tt_news Single статьи генерится title = название статьи + Подзаголовок(превью) + SLOGAN-DOMEN.COM
А в description = первые 200 символов из основного текста.
Для обычной страницы title = заголовок страници + SLOGAN-DOMEN.COM
А в description = Описание(из закладки "метаданные")
Почему такая разница в подходе?
Я не спец по SEO, Но в description tt_news Single я бы состввлял именно из превью статьи, тоесть из поля "Подзаголовок", а не из первого предложения bodytext.
А из title исключил Подзаголовок(превью) слишком длинное.
Ну или тогда для обычных страниц title тоже составлять подобным образом, тоесть = название статьи + Описание(из закладки "метаданные") + SLOGAN-DOMEN.COM
Но тогда SLOGAN-DOMEN.COM не видно, так как заголовок очень длинный.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot