Przyjazne linki - czyli konfiguracja RealURL w TYPO3

Opublikował:‌ WG Admin
Kategorie: Rozszerzenia, SEO

Jest kilka powodów dla których warto zmienić adresy wyglądające standardowo domena.pl/index.php na domena.pl/przyjazny-link.html. Jest to szczególnie polecane z punktu widzenia optymalizacji strony pod kątem SEO.

W czasach gdy wszyscy walczą o jak najwyższą pozycję w TOP10, optymalizowanie strony nabrało nowego znaczenia. Prawidłowo zoptymalizowana witryna ma większą szansę uzyskać wysoką pozycję w wynikach wyszukiwania, ponieważ jest lepiej postrzegana przez roboty indeksujące. Coraz większe znaczenie ma poprawny i semantyczny kod strony, właściwie dobrane słów kluczowych i opisów (description) w znacznikach meta, unikalność treści no i oczywiście przyjazne linki...

RealURL-e odgrywają zasadniczą rolę w (przynajmniej) dwóch obszarach istotnych z punktu widzenia pozycjonowania strony:

SEO - tak skonstruowane adresy są bardziej "zjadliwe" dla robotów indeksujących. Dzięki temu rozwiązaniu mamy możliwość umieszczenia w adresie naszych słów kluczowych (te z kolei będą uwzględniane w wynikach wyszukiwania). Przykład - wyszukiwane frazy są "podświetlane" również w adresie (przykład poniżej).

Użyteczność (usability) - tak wyglądający adres, zdecydowanie łatwiej będzie zapamiętać użytkownikowi niż ciąg znaków generowany domyślnie przez TYPO3. Szczególnie istotna będzie sytuacja kiedy internauta ponownie będzie chciał przeczytać interesujący go artykuł i posiadając jedynie niezrozumiały ciąg znaków będzie musiał wyszukiwać stronę docelową od początku. W najlepszym wypadku zwiększy się ruch na stronie a w najgorszym stracimy czytelnika.

W TYPO3 konfiguracja RealURL-i nie powinna przysporzyć większych kłopotów (chyba że ustawienia serwera są nietypowe).

1. Serwer i plik .htaccess

Plik .htaccess znajdziemy w katalogu głównym naszej instalacji TYPO3. Jeżeli nie był wcześniej konfigurowany może mieć w nazwie dolne podkreślenie przed kropką. Poniższe ustawienia powinny w zupełności wystarczyć aby zastosować przyjazne linki.

Kod:  Zaznacz wszystko
RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php

2. Wtyczka RealURL i jej konfiguracja w TypoScript-cie

Na początek otwórzmy sobie główny TypoScript i skonfigurujmy wtyczkę przed jej instalacją. Całość jest dość prosta i raczej nie wymaga komentarza...

Kod:  Zaznacz wszystko
# RealURL config
config.simulateStaticDocuments = 0
config.baseURL = http://webground.pl/
config.tx_realurl_enable = 1
config.uniqueLinkVars = 1
config.linkVars = L
config.defaultToHTMLsuffixOnPrev = 1

Kolejnym krokiem jest pobranie z repozytorium wtyczki i jej instalacja, ale zanim to zrobimy proponowałbym deaktywować rozszerzenie Simulate Static URLs (simulatestatic). Wyłączyliśmy je w powyższej konfiguracji, ale zdarzały się sytuacje że to nić nie dawało... więc dla świętego spokoju...

Ok. Uruchomiliśmy instalatora, wtyczka wprowadziła zmiany w bazie danych i przyszedł czas na konfigurację "formularza". Ja osobiście sam konfiguruję rozszerzenie aby mieć nad wszystkim kontrolę, dlatego też odznaczam "Enable automatic configuration" i wprowadzam scieżkę w której znajduje się moja konfiguracja: typo3conf/realurlconf.php. Całość konfiguracji umieszczam na zrzucie ekranu poniżej.

3. Konfiguracja pliku realurlconf.php

Ostatnim elementem układanki jest plik odpowiedzialny za konfigurację przyjaznych linków. Poniżej zamieszczam podstawowe ustawienia, które powinny w zupełności wystarczyć by uruchomić w TYPO3 nasze RealURL-e.

UWAGA! Należy wprowadzić odpowiednią wartość w 'rootpage_id' (linia nr. 10 kodu). Jest to id naszego roota, czyli głównego korzenia witryny. W przykładowym pliku wartość ta wynosi "1", ale w zależności od instalacji ta wartość może być inna.

Kod:  Zaznacz wszystko
<?php 
$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
        'init' => array(
            'enableCHashCache' => 1,
            'appendMissingSlash' => 'ifNotFile',
            'enableUrlDecodeCache' => 1,
            'enableUrlEncodeCache' => 1,
            'respectSimulateStaticURLs' => 0,
            'postVarSet_failureMode'=>'',
            'rootpage_id'=>'1',
        ),
    'redirects_regex' => array (
 
    ),
    'preVars' => array(
                        array(
                                'GETvar' => 'no_cache',
                                'valueMap' => array(
                                    'no_cache' => 1,
                                ),
                                'noMatch' => 'bypass',
                        ),
                         array(
                             'GETvar' => 'L',
                             'valueMap' => array(
                                                'pl' => '0',
                                                'en' => '2',
                                        ),
                                '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' => 1,
        ),
 
      '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]',
                        ),
                    ),
                ),             
            ),
 
      'fileName' => array(
            'defaultToHTMLsuffixOnPrev'=>1,
            '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,
                    ),
                ),
            ),
        ),
 );
 php?>

Wasze komentarze:

comments powered by Disqus

Komentowanie - zasady

Autorzy komentarzy zamieszczonych w serwisie webground.pl publikują swoje opinie wyłącznie na własną odpowiedzialność.

Właściciel serwisu webground.pl nie ponosi żadnej odpowiedzialności za treści umieszczone przez użytkowników portalu