====== 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 [[doku>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é [[doku>config:userewrite|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. * [[doku>install:Apache]] - používá modul [[http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html|mod_rewrite]]. Lze povolit pomocí souboru ''.htaccess''. * [[doku>install:IIS]] - používá vlastní přepisovací pravidla nebo modul pro přepisování. * [[doku>install:nginx]] - má vestavěnou podporu přepisování. * [[doku>install:caddy]] - má vestavěnou podporu přepisování. * [[doku>install:php-webserver|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 [[doku>config:userewrite|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 [[doku>config:userewrite|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 ====== Viz také ====== * [[doku>tips:httpslogin|Přepisovací pravidla pro bezpečné přihlášení]] * [[https://stackoverflow.com/questions/9153262/tips-for-debugging-htaccess-rewrite-rules | Tipy pro ladění přepisovacích pravidel v .htaccess]]