Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TYPO3: SEO и статистика посещений (http://forum.typo3.ru/forumdisplay.php?f=35)
-   -   TYPO3, SEO-edition ??? (http://forum.typo3.ru/showthread.php?t=5475)

Valery Romanchev 29.12.2007 00:59

TYPO3, SEO-edition ???
 
Вопрос в том, что туда должно войти и как это должно быть сделано.

исходный список

Цитата:

  1. Отлключить генерацию всех заголовков в хедере и генерить их самим (в этом разделе есть нормальный пример TS - он подойтет под самые замомороченные придумки сеошников по title, description и прочему)
  2. google site map (там кстати правила наверняка часто меняются...)
  3. ставить гугле-аналитику конечно (как я понимаю, без экстеншена)
  4. есть еще экст для специальной сеошной карты сайта
  5. нужен экстеншен для автоматической подстановки сслылок на ключевые слова - есть несколько словарей, которые делают автоматическую линковку
  6. RealURL либо simulate static (кстати - у меня результаты по google page rank у сайта, который был в simulate static оказались выше, чем у аналогичных с RealURL - впрочем это было полтора года назад.. )
  7. если несколько сайтов в системе - то для каждого свой robots.txt (для этого есть экст)
  8. переопределение h1...h5, p и прочего в css_styled_content - чтобы был более чистый HTML код
  9. элемент php content в двух вариантах (кешируемы и некешируемый) - чтобы вставлять коды всяких сапов
  10. ab_linklist - это если сильно нужен собсвтенный каталог без прямых ссылок
  11. наследование левой\правой колонок (и футера или др. блоков) вниз по дереву (чтоб было удобно вставлять всясечкие вещи в разделы)
  12. всякие блоговые и web 2.0 штуки типа послать другу и добавить в закладки, в digg (хотя это не совсем по теме, но имхо надо иметь готовое решение под это)
  13. статистика, но только не тайповская внутренняя, а лучше phpmyvisisits

дополненный и откорректированный список
  1. Отлключить генерацию всех заголовков в хедере и генерить их самим (в этом разделе есть нормальный пример TS - он подойтет под самые замомороченные придумки сеошников по title, description и прочему)
  2. google site map (там кстати правила наверняка часто меняются...)
  3. ставить гугле-аналитику конечно (как я понимаю, без экстеншена)
  4. есть еще экст для специальной сеошной карты сайта
  5. нужен экстеншен для автоматической подстановки сслылок на ключевые слова - есть несколько словарей, которые делают автоматическую линковку
  6. RealURL либо simulate static (кстати - у меня результаты по google page rank у сайта, который был в simulate static оказались выше, чем у аналогичных с RealURL - впрочем это было полтора года назад.. )
  7. если несколько сайтов в системе - то для каждого свой robots.txt (для этого есть экст)
  8. переопределение h1...h5, p и прочего в css_styled_content - чтобы был более чистый HTML код
  9. элемент php content в двух вариантах (кешируемы и некешируемый) - чтобы вставлять коды всяких сапов
  10. ab_linklist - это если сильно нужен собсвтенный каталог без прямых ссылок
  11. наследование левой\правой колонок (и футера или др. блоков) вниз по дереву (чтоб было удобно вставлять всясечкие вещи в разделы)
  12. всякие блоговые и web 2.0 штуки типа послать другу и добавить в закладки, в digg (хотя это не совсем по теме, но имхо надо иметь готовое решение под это)
  13. статистика, но только не тайповская внутренняя, а лучше phpmyvisisits
  14. RSS из ньюсов и контента для нашего любимого Я. Скорость индексации с и без - небо и земля.
  15. возможно - lightbox для картинок, потому что в случае Click Enlarge генерится много JS кода
  16. TS код для вставки версии для печати
  17. настройки robots.txt, чтобы версия для печати не индексировалась???
доп. инф
http://typo3.org/documentation/docum....0.1/view/1/4/

http://typo3.fruit-lab.de/

http://www.dawsoninteractive.com/art...-introduction/
http://www.dawsoninteractive.com/art...-1-title-tags/
и вот они чеклист написали
http://www.dawsoninteractive.com/art...seo-checklist/



Эксты на эту тему
seo_basics
seo_dynamic_tag

pomotom 29.12.2007 02:55

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

Цитата:

Сообщение от pomotom (Сообщение 16826)
1. и поправить его для ньюсов, если можно

да, это надо вписать.
Т.е. идея в том, что будет здоровый кусок TS кода, с которым можно извращаться как угодно:
- задать начальную и конечную фразу
- брать данные из title, subtile или description страницы
- настроить или запретить наследование

вставлять в этот TS условия, или юзать константы, которые уже вставлять в страницах..

Цитата:

2. есть ли карта для ньюсов?
да, есть для произв. записей (я ее ставил для ньюсов)

Цитата:

3. был экстеншени для аналитики, причем новой
я имею ввиду, что может и не нужен экст, потому что он всего навсего вставляет код перед </body>


Цитата:

6. симулейт статик лучше в принципе, но опять -таки ньюсы...
а чем ньюсы плохи? для них тоже можно урлы короткими делать
кстати RealURL незаменим, если надо сохранить старые URL страниц типа как здесь http://watergeo.ru/uslugi.shtml




Цитата:

+ 14. RSS из ньюсов и контента для нашего любимого Я. Скорость индексации с и без - небо и земля.
Да, это обязательно... причем там не все просто, долго возились с этим.

pomotom 29.12.2007 08:40

Цитата:

а чем ньюсы плохи? для них тоже можно урлы короткими делать
у симулейт статик адреса вроде хранятся в ФЕ-кеше, и по доке после очистки кеша надо срочно закешировать все страницы?
а можно настроить РеалУрл для работы без иерархии, по комбинации тайтл+ид для новостей и прочих плагинов и алиас/тайтл+ид для страниц?
что-то было на тему фикседПостВарс или как их там, чтоб "get rid of "article" in URL"?
типа Mysite.ru/vot-moya-ktutaya-news-456.html

Valery Romanchev 05.01.2008 02:07

Цитата:

Сообщение от pomotom (Сообщение 16828)
у симулейт статик адреса вроде хранятся в ФЕ-кеше, и по доке после очистки кеша надо срочно закешировать все страницы?

ну они вроде сами должны, т.е. урлы не должны перестать работать

Цитата:

а можно настроить РеалУрл для работы без иерархии, по комбинации тайтл+ид для новостей и прочих плагинов и алиас/тайтл+ид для страниц?
что-то было на тему фикседПостВарс или как их там, чтоб "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://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/docum....4.3/view/1/2/
или вот эту
http://typo3.org/documentation/docum...ap/0.4.2/view/


http://typo3.org/documentation/docum...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-realu...h-segment.html
и не вот такими
http://some.ru/nazvanie-str/kakaya-t...chen-dlinnaya/

Сделать это очень просто

'segTitleFieldList' => 'tx_realurl_pathsegment,alias,uid',


PHP код:

 $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   

        
), 


pomotom 13.01.2008 18:19

'segTitleFieldList' => 'tx_realurl_pathsegment,alias,nav_title,uid' мне нравится больше. И для новостей - только uid.
'postVarSet_failureMode'=>'redirect_goodUpperDir' - для СЕО-эдишен вроде не катит? 404 ж не отработается. Так что 'postVarSet_failureMode'=>'' и редирект на скрипт с выделением домена (для многодоменного дерева) и перенаправлением на страницу с картой сайта.

Valery Romanchev 13.01.2008 19:22

Цитата:

Сообщение от pomotom (Сообщение 17069)
'segTitleFieldList' => 'tx_realurl_pathsegment,alias,nav_title,uid' мне нравится больше. И для новостей - только uid.

из за nav_title - все равно можем получить vot-takoy-uzasniy-text-v-url
некрасиво это имхо

Но если язык англ или немецкий - то наверное надо
'tx_realurl_pathsegment,alias,nav_title,title'


Цитата:

Сообщение от pomotom (Сообщение 17069)
'postVarSet_failureMode'=>'redirect_goodUpperDir' - для СЕО-эдишен вроде не катит? 404 ж не отработается. Так что 'postVarSet_failureMode'=>'' и редирект на скрипт с выделением домена (для многодоменного дерева) и перенаправлением на страницу с картой сайта.

да, корректная 404 - это важно... я долго возился с этим на одном сайте

в итоге там сейчас в localconf.php


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 код:

<?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

pomotom 13.01.2008 20:08

а что в /404-error/ ? если у нас 2 сайта в дереве и каждому из них сделать такой пас сегмент - отработает нормально?

Valery Romanchev 13.01.2008 21:04

Цитата:

Сообщение от pomotom (Сообщение 17076)
а что в /404-error/ ?

страница с alias'ом 404-error

Цитата:

Сообщение от pomotom (Сообщение 17076)
если у нас 2 сайта в дереве и каждому из них сделать такой пас сегмент - отработает нормально?

по идее должно работать нормально
я давно еще тестировал - одинаковые алиасы правильно обрабатываются, если конфиг RealURL настроен на два корня - примеры в wiki.typo3.org были

pomotom 13.01.2008 21:41

алиаса? разве на них нет условия единственности в таблице?

Valery Romanchev 13.01.2008 21:46

Цитата:

Сообщение от pomotom (Сообщение 17079)
алиаса? разве на них нет условия единственности в таблице?

есть
но так там у меня только один сайт в дереве

pomotom 14.01.2008 09:44

Интересно!
http://typo3.org/documentation/docum....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”


jettero 21.01.2008 06:29

Цитата:

Сообщение от pomotom (Сообщение 17085)
Интересно!
http://typo3.org/documentation/docum....1.0/view/1/1/
[/color][/u][/b]

я его поставил, мне понравилось как делает пути, лучше чем в realurl

jettero 21.01.2008 06:33

Кстати никто не встречал расширение для realurl, чтобы генерировать имя файла по get запросам, так же как postVarSet? Мне важно, чтобы можно было задать lookUpTable.

Это надо, поскольку поисковые машины, по идее, должны больше веса давать словам в названии файла, чем словам в директории.

jettero 21.01.2008 08:11

уже не надо, доработал напильником realurl ;)

chiefff 23.01.2008 12:51

Господа!

А если у меня адресация в тт-ньюс типа:

...news/article/11/41/

А хочется сделать типа: ...news/article-11-41/

Как реализовать?

surfman 12.11.2008 16:22

Ну так как, есть ли вариант с news/article-ID/ на весь сайт в целом?

surfman 25.11.2008 00:36

Добрый день.
Разбораюсь с 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 не видно, так как заголовок очень длинный.


Часовой пояс GMT +4, время: 14:18.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot