Zapnutie SEF na stránke má zopár podmienok:- hosting musí podporovať mod_rewrite ( Apache modul )
- zapnutý SEF v Globálnej konfigurácií
- správne nastavený .htaccess súbor
- správne nastavený SEF komponent ( v prípade, že sa nepoužíva zabudovaný SEF Joomla! )
Ako zistím, či mám povolený mod_rewrite?Joomla! Administrator -> System -> System info.
Na stránke
PHP Info treba nájsť odsek
apache2handler.
V časti
Loaded Modules sa musí nachádzať
mod_rewrite.
Ako zapnem SEF v Joomla! ?Joomla! Administrator -> Site -> Global configuration.
Na stránke
SEO treba zapnúť
Search Engine Friendly URLs: na Áno.
Ako správne nastavím .htaccess?Tento súbor má vlastný syntax, je dobré ho aspoň v základoch pochopiť.
Odkazy
http://en.wikipedia.org/wiki/Htaccess ( v časti External links užitočné linky!)
http://httpd.apache.org/docs/2.0/howto/htaccess.htmlhttp://httpd.apache.org/docs/2.0/mod/mod_rewrite.htmlJoomla! má v hlavnom priečinku predpripravený súbor htaccess.txt . Premenovaním tohto súboru a zapnutím SEF v Joomla! konfigurácií sa vo väčšine prípadov SEF rozbehne.
Na čo treba dávať pozor / čo treba zmeniť v súbore .htaccess ? 1.
Riadky začínajúce znakom # sú vlastne komentáre - nevykonávajú sa. Používa sa to aj na dočasné vypnutie niektorých príkazov.
2.
Options +FollowSymLinks - až do verzie Joomla! 1.0.12 sa chybne uvádzal (Options FollowSymLinks - bez znamienka +) - treba používať htaccess.txt z verzie 1.0.12!
3.
RewriteEngine On - musí byť povolený (zapnutý - nesmie byť na začiatku riadku znak #
4.
/ - určuje umiestnenie koreňového adresára Joomla! - jej funkčnosť záleží na nastavení hostingu (či má byť povolený/nepovolený). Ak je Joomla! nainštalovaná v inom adresáry, ako je koreňový (vzhľadom na doménu), treba to tu uviesť ( napr. RewriteBase /mojajoomla )
5. Nastavenie pre zabudovaný SEF a pre komponent SEF (OpenSEF,Artio JoomSEF) je rozličné!
Nastavenie pre zabudovaný SEF
########## Begin - Joomla! core SEF Section
############# Use this section if using ONLY Joomla! core SEF
## ALL (RewriteCond) lines in this section are only required if you actually
## have directories named 'content' or 'component' on your server
## If you do not have directories with these names, comment them out.
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteRule ^(content/|component/) index.php
#
########## End - Joomla! core SEF Section
Nastavenie pre SEF komponenty tretích strán (OpenSEF, Artio JoomSEF...)
########## Begin - 3rd Party SEF Section
############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
#
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
#
########## End - 3rd Party SEF Section
V jednom čase môže byť len jeden z hore uvedených blokov aktívny - ten druhý treba pomocou znaku # vypnúť ( nastaviť ako komentár len)!Na otestovanie SEF je vhodné ako prvé vyskúšať zabudované SEF, nastaviť všetko potrebné pre túto funkciu a otestovať plnú funkčnosť stránky.
Ako ďalší krok je potom možné pristúpiť k inštalácii SEF komponentu tretích strán, zmeniť hore uvedený blok parametrov a testovať komponent SEF.
Všetko som nastavil, predsa mi nefunguje SEF?Nastavenie a správne fungovanie SEF v značnej miere záleží na hostingu. Nastavenie Apache servera ovplyvňuje aj fungovanie SEF.
Tipy pre nastavenie:
- niektoré hostingy hlásia chybu na zapnutie Options +FollowSymLinks - treba skúsiť so zapnutým/vypnutým parametrom.
- RewriteEngine On - musí byť vždy zapnutý - netreba skúšať zapnúť/vypnúť tento parameter.
- niektoré hostingy hlásia chybu na zapnutie RewriteBase - treba vyskúšať RewriteBase /, alebo RewriteBase/adresár_kde_je_joomla, alebo úplne vypnúť.
- vždy len jeden blok aktívny pre RewriteCond - buď prvý (J! SEF) alebo druhý (3pd)
Nastavenie SEF je značne závislý na hostingu, správne odladenie vyžaduje čas a skúšanie!Pre nastavenie SEF komponentov tretích strán je potrebné hľadať informácie na príslušnej podpore daného komponentu.