Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 18.01.2011, 14:14   #1
musson
Продвинутый
 
Регистрация: 20.11.2010
Сообщений: 40
По умолчанию Сделать правильнее сделать 301 Moved Permanently

Всем привет))
Перенес сайт с cms написанной на .Net на Typo3.
Все страницы раньше имели путь типа site.ru\contact.aspx ,
сейчас структура сайта такая же только расширение разное, с aspx поменялось на html.
Так как сайту уже год, поисковики уже проиндексировали сайт. Т.е. хочется чтобы при запросе скажем site.ru\contact.aspx typo3 выдавала 301 Moved Permanently и перекидывал на site.ru\contact.html т.е. просто достаточно менять с aspx на html т.к. структура осталась такая же.
Как это лучше реализовать?
К typo3 прикручен realurl.
musson вне форума   Ответить с цитированием
Старый 18.01.2011, 17:22   #2
musson
Продвинутый
 
Регистрация: 20.11.2010
Сообщений: 40
По умолчанию

сделал вот так, добавил в index.php

PHP код:
$linkRequest $_SERVER['REQUEST_URI'];
if(
preg_match("/.aspx$/",$linkRequest))
{
    
$toRedirect preg_replace("/(.aspx$)/",".html"$linkRequest);
    
header('HTTP/1.1 301 Moved Permanently');
    
header('Location: http://www.site.ru'.$toRedirect);
    exit();

либо


RewriteBase /
RewriteRule ^(.*)\.aspx$ $1.html [R=permanent,L]

Последний раз редактировалось musson; 18.01.2011 в 17:44
musson вне форума   Ответить с цитированием
Старый 19.01.2011, 02:50   #3
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Редиректы самого сервера работают быстрее и не надо ничего менять в ядре системы.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 05.04.2011, 19:31   #4
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Обнаружилась проблема с новым RealURL.
Одинаковый контент выдается как для урлов вида page/ и page.html
Раньше это решалось установкой в конфиге acceptHTMLsuffix = 1, но в последних версиях этот параметрв хоть и объявляется и описан в доке, но реально в коде не учитывается. Похоже что "принятие" урлов с .html зашито в коде, так как другие урлы, например .htm выдают 404 ошибку.

Попробовал в .htaccess такое решение:
Код:
RewriteBase /
RewriteRule ^(.*)\.html$ $1/ [R=permanent,L]
Работает - но теперь перестали работать страницы "версия для печати", урл которых конфигом RealURL был задан как .../page.html

Что посоветуете?

Updated: единственное что пока удалось сделать что бы все работало - поменять print.html на print.htm

Последний раз редактировалось dmartynenko; 05.04.2011 в 19:48
dmartynenko вне форума   Ответить с цитированием
Старый 06.04.2011, 19:19   #5
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

А если этот самый атрибут print транслировать просто в /адрес_страницы/ptint/ ?
-=UncleByte=- вне форума   Ответить с цитированием
Старый 06.04.2011, 19:38   #6
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Не получиться в .../print/
Так как RealURL умеет добавлять фиксированные переменные только в начало пути, т.е. /en/... или /print/...
Добавить "в самый конец" можно только опцией fileName.

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

Самое главное, что для SEO плохо что page/ и page.html выдают одно и тоже, а это поведение что называется "из коробки".
dmartynenko вне форума   Ответить с цитированием
Старый 07.04.2011, 19:46   #7
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Мой конфиг по основным параметрам (исключения то что в ветке выше) идентичен тому, что предлагает 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,
            )
        ); 
dmartynenko вне форума   Ответить с цитированием
Старый 10.04.2011, 18:35   #8
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

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

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

Сайт сконфигурированный на использование без суффикса - www.jawaclub.ru
При использовании суффикса выдается 404-я ошибка и страница этой ошибки.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 11.04.2011, 12:51   #9
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

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

У вас там кстати есть SEO-недоработка, урл со слэшем в конце и без него выдают одно и тоже:
http://www.jawaclub.ru/prosmotr-novosti
http://www.jawaclub.ru/prosmotr-novosti/
dmartynenko вне форума   Ответить с цитированием
Старый 11.04.2011, 16:30   #10
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Этот конфиг стопроцентно не мой собственный, брал его вроде бы из 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
-=UncleByte=- вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как правильней сделать Владимир Умнов Общие вопросы 2 12.10.2005 11:44


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория