Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Сделать правильнее сделать 301 Moved Permanently (http://forum.typo3.ru/showthread.php?t=9156)

-=UncleByte=- 07.04.2011 18:19

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

dmartynenko 07.04.2011 19:00

Либо документация не поспевает, либо код переработан и этот параметр просто "забыли".
Тот код, что я видел в исходниках RealURL полгода назад, сильно отличается от того что есть сейчас.
Проверить acceptHTMLsuffix легко - берете название параметра и ищите по исходникам где он встречается.

Мой конфиг - самый что ни есть типовой:
PHP код:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'][$site_name] = array (
    
'init' => array (
        
'enableCHashCache' => true,
        
'appendMissingSlash' => 'ifNotFile,redirect',
        
'adminJumpToBackend' => true,
        
'enableUrlDecodeCache' => true,
        
'enableUrlEncodeCache' => true,
        
'emptyUrlReturnValue' => '/',
    ),
    
'pagePath' => array (
        
'type' => 'user',
        
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
        
'spaceCharacter' => '-',
        
'languageGetVar' => 'L',
        
'segTitleFieldList' => 'tx_realurl_pathsegment,alias,nav_title,title',
        
'rootpage_id' => 1,
    ),
    
'fileName' => array (
        
// 'defaultToHTMLsuffixOnPrev' => 0,
        // 'acceptHTMLsuffix' => 0,
        
'index' => array (
            
'print.htm' => array (
                
'keyValues' => array ('type' => 98),
            ),
        ),
    ) 


-=UncleByte=- 07.04.2011 19:08

Я когда столкнулся с глюками при переходе на новую версию RealURL выработал "стратегию" перехода: включить автоконфиг несериализованный, сгенерить его, использовать как болванку для своего. Потому что на самом деле довольно много изменений вносится и не всегда работает ожидаемым образом, в результате изменение настроек лучше всего показывает именно автоконфиг.
Кстати, а внутренние редиректы RealURL выдают 301 код или нет?

dmartynenko 07.04.2011 19:46

Мой конфиг по основным параметрам (исключения то что в ветке выше) идентичен тому, что предлагает autoconfig

PHP код:

    /**
     * Creates common configuration template.
     *
     * @return    array        Template
     */
    
protected function getTemplate() {
        
$confTemplate = array(
            
'init' => array(
                
'enableCHashCache' => true,
                
'appendMissingSlash' => 'ifNotFile,redirect',
                
'adminJumpToBackend' => true,
                
'enableUrlDecodeCache' => true,
                
'enableUrlEncodeCache' => true,
                
'emptyUrlReturnValue' => t3lib_div::getIndpEnv('TYPO3_SITE_PATH')
            ),
            
'pagePath' => array(
                
'type' => 'user',
                
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
                
'spaceCharacter' => '-',
                
'languageGetVar' => 'L',
            ),
            
'fileName' => array(
                
'defaultToHTMLsuffixOnPrev' => 0,
                
'acceptHTMLsuffix' => 1,
            )
        ); 


-=UncleByte=- 10.04.2011 18:35

Проверил на паре сайтов. Везде обновился до последних версий всех плагинов и переводов.
Результаты:

Сайт сконфигурированный на использование суффикса - www.rzhevrealty.ru
На самом деле адрес воспринимается и с суффиксом и без и адрес приводит к одной и той же странице.

Сайт сконфигурированный на использование без суффикса - www.jawaclub.ru
При использовании суффикса выдается 404-я ошибка и страница этой ошибки.

dmartynenko 11.04.2011 12:51

Можете выложить конфиг для RealURL второго сайта (только его начало)?

У вас там кстати есть SEO-недоработка, урл со слэшем в конце и без него выдают одно и тоже:
http://www.jawaclub.ru/prosmotr-novosti
http://www.jawaclub.ru/prosmotr-novosti/

-=UncleByte=- 11.04.2011 16:30

Этот конфиг стопроцентно не мой собственный, брал его вроде бы из wiki.typo3.org давным давно и с тех пор если и менял, то крайне незначительно:
Код:

<?php
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
    '_DEFAULT' => array(
        'init' => array(
            'enableCHashCache' => 1,
            'appendMissingSlash' => 'ifNotFile',
            'enableUrlDecodeCache' => 1,
            'enableUrlEncodeCache' => 1,
        ),
        'redirects' => array(),
        'preVars' => array(
            array(
                'GETvar' => 'no_cache',
                'valueMap' => array(
                    'nc' => 1,
                ),
                'noMatch' => 'bypass',
            ),
            array(
                'GETvar' => 'L',
                'valueMap' => array(
                    'en' => '2',
                    'ru' => '1',
                ),
                'noMatch' => 'bypass',
            ),
        ),
        'pagePath' => array(
            'type' => 'user',
            'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
            'spaceCharacter' => '-',
            'languageGetVar' => 'L',
            'expireDays' => 7,
            'rootpage_id' => 2,
        ),
        'fixedPostVars' => array(),
        '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
                'select_category' => 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',
                            'useUniqueCache' => 1,
                            'useUniqueCache_conf' => array(
                                'strtolower' => 1,
                                'spaceCharacter' => '-',
                                ),
                            ),
                        ),
                    array(
                        'GETvar' => 'tx_ttnews[swords]',
                        ),
                    ),
                ),
            ),
        // configure filenames for different pagetypes
        'fileName' => array(
            'index' => 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,
                    ),
                ),
            ),
        ),
    ),
);?>

А для SEO недоработок такого вида есть sitemap.xml, в котором и указаны все правильные адреса и сам sitemap.xml прописан и в robots.txt и добавлен в поисковики вручную.
Ну и заодно следует учитывать специфику использования только nginx без apache :)

dmartynenko 11.04.2011 16:45

Ваш конфиг является подтверждением моей догадки, у вас нет этой строки: 'defaultToHTMLsuffixOnPrev' => 0
Поэтому .html ваш сайт не принимает!

Если бы вы создали конфигурацию как autoconf и внесли в нее свои правки, то вероятнее всего строка с 'defaultToHTMLsuffixOnPrev' => 0 у вас осталась бы.

А запрет ссылок без "/" на конце делается вот так: 'appendMissingSlash' => 'ifNotFile,redirect'

Цитата:

Keyword: "redirect"
This keyword will force RealURL to redirect to the location with appended slash. This will ensure that pages do not appear doubled in the Google index (and therefore page rank does not suffer).

-=UncleByte=- 11.04.2011 18:44

В том и дело что это не мной написанный конфиг, 5 лет назад я еще не очень подробно разбирался с RealURL и конфиги брал готовые с wiki.typo3.org правя в них исключительно rootpageid.
Добавлять отсутствующий слэш на конце гораздо лучше умеет вебсервер, в том же htaccess приложенном в доке по RealURL одна из строк именно этим и занимается.
В nginx это тоже можно делать, но в nginx нет такой фичи как перенаправление по завершающим слэшам как в Апаче и поэтому в принципе не нужно заморачиваться на такие мелочи, достаточно чтобы страница была верно указана в sitemap.xml.

dmartynenko 11.04.2011 19:24

Цитата:

Сообщение от -=UncleByte=- (Сообщение 30870)
Добавлять отсутствующий слэш на конце гораздо лучше умеет вебсервер, в том же htaccess приложенном в доке по RealURL одна из строк именно этим и занимается.

Соглашусь, перенаправление как page.html на page/, так и page на page/ лучше делать в .htaccess
Но, скажем так, RealURL в дефолтном конфиге тоже должен препятствовать дублям страниц по разным адресам, в независимости от настройки .htaccess

Во вторых не все вещи можно сделать в .htaccess с учетом "виртуальности" практически всех url в TYPO3. Мануал об этом и говорит (Note that it...):
Цитата:

To force this you simply append a '/' to the url if it is not a file:

RewriteRule (.*[^/])$ http://%{HTTP_HOST}/$1/ [L,R]

This works by redirecting the browser from www.example.com/project-name to www.example.com/project-name/.
Note that it will break rss.xml and similar mappings in the fileName section of the configuration.
Цитата:

Сообщение от -=UncleByte=- (Сообщение 30870)
В nginx это тоже можно делать, но в nginx нет такой фичи как перенаправление по завершающим слэшам как в Апаче и поэтому в принципе не нужно заморачиваться на такие мелочи, достаточно чтобы страница была верно указана в sitemap.xml.

Я следую рекомендациям SEO-шников. Никто не гарантирует что другие сайты на вас не сделают ссылки как example.com/page вместо example.com/page/. Тут то поисковики и обнаружат что по двум адресам одинаковый контент, что не есть хорошо.


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

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