⋮ Obsah
Přepisování URL
https://www.dokuwiki.org/rewrite
Ve výchozím stavu DokuWiki žádné URL nepřepisuje, takže adresy vypadají takto:
http://example.com/doku.php?id=wiki:syntax
Tyto adresy jsou poněkud nevzhledné a některé vyhledávače je nemusí dobře indexovat. Přepisování URL nabízí řešení v podobě „hezčích“ adres.
Možnosti přepisování
DokuWiki podporuje dvě metody přepisování URL, které se zapínají volbou config:userewrite. Jedna spoléhá na schopnosti přepisování webového serveru, druhá zpracovává přepsané adresy uvnitř DokuWiki. Přehled možností je v tabulce.
| Hodnota | Popis | Příklad URL |
|---|---|---|
| 0 | Přepisování URL se nepoužívá. Výchozí stav. | http://example.com/dokuwiki/doku.php?id=wiki:syntax |
| 1 | Přepisování provádí webový server. | http://example.com/dokuwiki/wiki:syntax |
| 2 | Přepisování provádí DokuWiki. | http://example.com/dokuwiki/doku.php/wiki:syntax |
Přepisování URL je ve výchozím stavu vypnuto, protože kromě nastavení příslušné konfigurační volby vyžaduje i další konfiguraci – ta je popsána níže.
Varianta 1: webový server
Tato varianta vyžaduje nejprve nastavení na webovém serveru. Způsob zapnutí závisí na použitém serveru. Podrobnosti viz odkazované stránky.
- install:IIS - používá vlastní přepisovací pravidla nebo modul pro přepisování.
- install:nginx - má vestavěnou podporu přepisování.
- install:caddy - má vestavěnou podporu přepisování.
- Vestavěný webový server v PHP - nevyžaduje konfiguraci, přepis funguje přes router DokuWiki v index.php.
Jakmile je na serveru podpora přepisování povolena, lze tuto volbu zapnout i v konfiguraci DokuWiki.
V rozbalovací nabídce userewrite zvolte možnost .htaccess. Alternativně přidejte nebo upravte řádek v souboru conf/local.php takto:
$conf['userewrite'] = 1;
V kořenové složce DokuWiki najděte soubor .htaccess.dist a zkopírujte ho jako .htaccess. Otevřete ho a odkomentujte řádky týkající se userwrite. Soubor je krátký a snadno pochopitelný.
Varianta 2: DokuWiki
Tato varianta nevyžaduje žádné nastavení webového serveru. Spoléhá však na funkci PATH_INFO standardu CGI tak, jak ji implementuje Apache. Některé konfigurace serveru ji nemusí podporovat.
Pro zapnutí této volby vyberte v rozbalovací nabídce userewrite možnost DokuWiki internal. Alternativně přidejte nebo upravte řádek v souboru conf/local.php takto:
$conf['userewrite'] = 2;
Čisté ID relace PHP
I při „čistých“ URL se může v adrese objevit parametr „DokuWiki“, například:
ID relace PHP:
http://example.com/example?DokuWiki=c81a95369a66576982119e2a60b557a5
Tento parametr je PHP session ID a PHP jej přidává automaticky. S přepisováním URL nesouvisí. Aby se neobjevoval, lze vynutit používání cookies pro sezení nastavením volby session.use_only_cookies v PHP.
Obvykle se to provádí v konfiguračním souboru php.ini:
session.use_only_cookies=1
Můžete také zkusit:
session.use_trans_sid=0