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.
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.
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.
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ý.
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;
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