CINXE.COM
pl:rewrite [DokuWiki]
<!DOCTYPE html> <html lang="pl" dir="ltr" class="no-js"> <head> <meta charset="utf-8" /> <title>pl:rewrite [DokuWiki]</title> <meta name="generator" content="DokuWiki"/> <meta name="theme-color" content="#008800"/> <meta name="robots" content="index,follow"/> <meta name="keywords" content="pl,rewrite"/> <link rel="search" type="application/opensearchdescription+xml" href="/lib/exe/opensearch.php" title="DokuWiki"/> <link rel="start" href="/"/> <link rel="contents" href="/pl:rewrite?do=index" title="Indeks"/> <link rel="manifest" href="/lib/exe/manifest.php"/> <link rel="alternate" type="application/rss+xml" title="Ostatnie zmiany" href="/feed.php"/> <link rel="alternate" type="application/rss+xml" title="Obecny katalog" href="/feed.php?mode=list&ns=pl"/> <link rel="edit" title="Edytuj stronę" href="/pl:rewrite?do=edit"/> <link rel="alternate" type="text/html" title="Czysty HTML" href="/_export/xhtml/pl:rewrite"/> <link rel="alternate" type="text/plain" title="Znaczniki" href="/_export/raw/pl:rewrite"/> <link rel="canonical" href="https://www.dokuwiki.org/pl:rewrite"/> <link rel="stylesheet" href="/lib/exe/css.php?t=dokuwiki&tseed=f1005bad3d81fc9c803c7f93d32a390e"/> <link rel="alternate" hreflang="en" href="https://www.dokuwiki.org/rewrite"/> <link rel="alternate" hreflang="de" href="https://www.dokuwiki.org/de:rewrite"/> <link rel="alternate" hreflang="fr" href="https://www.dokuwiki.org/fr:rewrite"/> <link rel="alternate" hreflang="ja" href="https://www.dokuwiki.org/ja:rewrite"/> <link rel="alternate" hreflang="ko" href="https://www.dokuwiki.org/ko:rewrite"/> <link rel="alternate" hreflang="ru" href="https://www.dokuwiki.org/ru:rewrite"/> <link rel="alternate" hreflang="zh" href="https://www.dokuwiki.org/zh:rewrite"/> <link rel="alternate" hreflang="x-default" href="https://www.dokuwiki.org/rewrite"/> <script >var NS='pl';var JSINFO = {"plugins":{"edittable":{"default columnwidth":""}},"id":"pl:rewrite","namespace":"pl","ACT":"show","useHeadingNavigation":0,"useHeadingContent":0};(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer="defer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" defer="defer"></script> <script src="/lib/exe/js.php?t=dokuwiki&tseed=f1005bad3d81fc9c803c7f93d32a390e&lang=pl" defer="defer"></script> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="shortcut icon" href="/lib/tpl/dokuwiki/images/favicon.ico" /> <link rel="apple-touch-icon" href="/lib/tpl/dokuwiki/images/apple-touch-icon.png" /> <meta name="verify-v1" content="OVxl3gsCv2MhZqh1cBQyl0JytWXSwXMjyvwc+4w3WtA=" /> <meta name="google-site-verification" content="YhTVK69hW94ZXUtc2zSLPxTkZKbZIn0zK67mz5WQB-E" /> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-83791-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-83791-1', { 'anonymize_ip': true }); </script> </head> <body> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site dokuwiki mode_show tpl_dokuwiki showSidebar hasSidebar"> <!-- ********** HEADER ********** --> <header id="dokuwiki__header"><div class="pad group"> <div class="headings group"> <ul class="a11y skip"> <li><a href="#dokuwiki__content">przejście do zawartości</a></li> </ul> <h1 class="logo"><a href="/start" accesskey="h" title="Główna [h]"><img src="/lib/tpl/dokuwiki/images/logo.png" width="64" height="64" alt="" /><span>DokuWiki</span></a></h1> <p class="claim">It's better when it's simple</p> </div> <div class="tools group"> <!-- USER TOOLS --> <div id="dokuwiki__usertools"> <h3 class="a11y">Narzędzia użytkownika</h3> <ul> <li class="action login"><a href="/pl:rewrite?do=login&sectok=" title="Zaloguj" rel="nofollow"><span>Zaloguj</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 17.25V14H3v-4h7V6.75L15.25 12 10 17.25M8 2h9a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2v-4h2v4h9V4H8v4H6V4a2 2 0 0 1 2-2z"/></svg></a></li> </ul> </div> <!-- SITE TOOLS --> <div id="dokuwiki__sitetools"> <h3 class="a11y">Narzędzia witryny</h3> <form action="/start" method="get" role="search" class="search doku_form" id="dw__search" accept-charset="utf-8"><input type="hidden" name="do" value="search" /><input type="hidden" name="id" value="pl:rewrite" /><div class="no"><input name="q" type="text" class="edit" title="[F]" accesskey="f" placeholder="Szukaj" autocomplete="on" id="qsearch__in" value="" /><button value="1" type="submit" title="Szukaj">Szukaj</button><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <div class="mobileTools"> <form action="/doku.php" method="get" accept-charset="utf-8"><div class="no"><input type="hidden" name="id" value="pl:rewrite" /><select name="do" class="edit quickselect" title="Narzędzia"><option value="">Narzędzia</option><optgroup label="Narzędzia strony"><option value="edit">Edytuj stronę</option><option value="revisions">Poprzednie wersje</option><option value="backlink">Odnośniki</option></optgroup><optgroup label="Narzędzia witryny"><option value="recent">Ostatnie zmiany</option><option value="media">Menadżer multimediów</option><option value="index">Indeks</option></optgroup><optgroup label="Narzędzia użytkownika"><option value="login">Zaloguj</option></optgroup></select><button type="submit">></button></div></form> </div> <ul> <li class="action recent"><a href="/pl:rewrite?do=recent" title="Ostatnie zmiany [r]" rel="nofollow" accesskey="r">Ostatnie zmiany</a></li><li class="action media"><a href="/pl:rewrite?do=media&ns=pl" title="Menadżer multimediów" rel="nofollow">Menadżer multimediów</a></li><li class="action index"><a href="/pl:rewrite?do=index" title="Indeks [x]" rel="nofollow" accesskey="x">Indeks</a></li> </ul> </div> </div> <!-- BREADCRUMBS --> <div class="breadcrumbs"> <div class="trace"><span class="bchead">Ślad:</span> <span class="bcsep">•</span> <span class="curid"><bdi><a href="/pl:rewrite" class="breadcrumbs" title="pl:rewrite">rewrite</a></bdi></span></div> </div> <hr class="a11y" /> </div></header><!-- /header --> <div class="wrapper group"> <!-- ********** ASIDE ********** --> <nav id="dokuwiki__aside" aria-label="Pasek boczny"><div class="pad aside include group"> <h3 class="toggle">Pasek boczny</h3> <div class="content"><div class="group"> <div class="notify">Tłumaczenie jest starsze niż <a href="/rewrite" class="wikilink1">oryginalna strona</a> i może być przestarzałe. Zobacz co się <a href="/rewrite?do=diff&rev=1398778645" class="wikilink1">zmieniło</a>.</div><div class="plugin_translation is-dropdown"><span class="title">Tłumaczenie tej strony<sup><a href="/localization" class="wikilink1" title="localization" data-wiki-id="localization">?</a></sup>: </span><ul><li class="a"><a class="wikilink1" title="English" href="/rewrite">English (en)</a></li><li class="a"><a class="wikilink2" title="|العربية" href="/ar:rewrite">|العربية (ar)</a></li><li class="a"><a class="wikilink2" title="Català" href="/ca:rewrite">Català (ca)</a></li><li class="a"><a class="wikilink2" title="Česky" href="/cs:rewrite">Česky (cs)</a></li><li class="a"><a class="wikilink2" title="Dansk" href="/da:rewrite">Dansk (da)</a></li><li class="a"><a class="wikilink1" title="Deutsch" href="/de:rewrite">Deutsch (de)</a></li><li class="a"><a class="wikilink2" title="Ελληνικά" href="/el:rewrite">Ελληνικά (el)</a></li><li class="a"><a class="wikilink2" title="Esperanto" href="/eo:rewrite">Esperanto (eo)</a></li><li class="a"><a class="wikilink2" title="Español" href="/es:rewrite">Español (es)</a></li><li class="a"><a class="wikilink2" title="فارسی" href="/fa:rewrite">فارسی (fa)</a></li><li class="a"><a class="wikilink1" title="Français" href="/fr:rewrite">Français (fr)</a></li><li class="a"><a class="wikilink2" title="עברית" href="/he:rewrite">עברית (he)</a></li><li class="a"><a class="wikilink2" title="Magyar" href="/hu:rewrite">Magyar (hu)</a></li><li class="a"><a class="wikilink2" title="Italiano" href="/it:rewrite">Italiano (it)</a></li><li class="a"><a class="wikilink1" title="日本語" href="/ja:rewrite">日本語 (ja)</a></li><li class="a"><a class="wikilink1" title="한국어" href="/ko:rewrite">한국어 (ko)</a></li><li class="a"><a class="wikilink2" title="Lietuvių Kalba" href="/lt:rewrite">Lietuvių Kalba (lt)</a></li><li class="a"><a class="wikilink2" title="Nederlands" href="/nl:rewrite">Nederlands (nl)</a></li><li class="a"><a class="wikilink2" title="Norsk" href="/no:rewrite">Norsk (no)</a></li><li class="span"><span class="wikilink1" title="Polski">Polski (pl)</span></li><li class="a"><a class="wikilink2" title="Português" href="/pt-br:rewrite">Português (pt-br)</a></li><li class="a"><a class="wikilink2" title="Română" href="/ro:rewrite">Română (ro)</a></li><li class="a"><a class="wikilink1" title="Русский" href="/ru:rewrite">Русский (ru)</a></li><li class="a"><a class="wikilink2" title="Српски Језик" href="/sr:rewrite">Српски Језик (sr)</a></li><li class="a"><a class="wikilink2" title="Svenska" href="/sv:rewrite">Svenska (sv)</a></li><li class="a"><a class="wikilink2" title="ไทย" href="/th:rewrite">ไทย (th)</a></li><li class="a"><a class="wikilink2" title="Українська" href="/uk:rewrite">Українська (uk)</a></li><li class="a"><a class="wikilink1" title="中文" href="/zh:rewrite">中文 (zh)</a></li><li class="a"><a class="wikilink2" title="繁體中文" href="/zh-tw:rewrite">繁體中文 (zh-tw)</a></li></ul></div> <p> <strong>Learn about DokuWiki</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/features" class="wikilink1" title="features" data-wiki-id="features">Features</a> & <a href="/blogroll" class="wikilink1" title="blogroll" data-wiki-id="blogroll">reviews</a> </div> </li> <li class="level1"><div class="li"> <a href="/install" class="wikilink1" title="install" data-wiki-id="install">Installation guide</a></div> </li> <li class="level1"><div class="li"> <a href="/manual" class="wikilink1" title="manual" data-wiki-id="manual">User manual</a> & <a href="/wiki:syntax" class="wikilink1" title="wiki:syntax" data-wiki-id="wiki:syntax">syntax</a></div> </li> <li class="level1"><div class="li"> <a href="/changes" class="wikilink1" title="changes" data-wiki-id="changes">Release notes</a></div> </li> <li class="level1"><div class="li"> <a href="/faq" class="wikilink1" title="faq" data-wiki-id="faq">FAQ</a></div> </li> </ul> <p> <strong>Advanced Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/extensions" class="wikilink1" title="extensions" data-wiki-id="extensions">Extensions</a></div> </li> <li class="level1"><div class="li"> <a href="/development" class="wikilink1" title="development" data-wiki-id="development">Development manual</a></div> </li> </ul> <p> <strong>Corporate Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/faq:support" class="wikilink1" title="faq:support" data-wiki-id="faq:support">Get support</a></div> </li> <li class="level1"><div class="li"> <a href="/donate" class="wikilink1" title="donate" data-wiki-id="donate">Donations</a></div> </li> </ul> <p> <strong>Our Community</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/teams:getting_involved" class="wikilink1" title="teams:getting_involved" data-wiki-id="teams:getting_involved">Get involved</a></div> </li> <li class="level1"><div class="li"> <a href="/dokuinstall" class="wikilink1" title="dokuinstall" data-wiki-id="dokuinstall">Users</a></div> </li> <li class="level1"><div class="li"> <a href="http://forum.dokuwiki.org" class="urlextern" title="http://forum.dokuwiki.org">User forum</a></div> </li> <li class="level1"><div class="li"> <a href="/mailinglist" class="wikilink1" title="mailinglist" data-wiki-id="mailinglist">Development mailinglist</a></div> </li> </ul> <hr /> <p> Follow us on <a href="https://phpc.social/@dokuwiki" class="urlextern" title="https://phpc.social/@dokuwiki">Mastodon</a> and other <a href="/social" class="wikilink1" title="social" data-wiki-id="social">social networks</a>. </p> <p> <a href="/privacy" class="wikilink1" title="privacy" data-wiki-id="privacy">Our Privacy Policy</a> </p> </div></div> </div></nav><!-- /aside --> <!-- ********** CONTENT ********** --> <main id="dokuwiki__content"><div class="pad group"> <div class="pageId"><span>pl:rewrite</span></div> <div class="page group"> <!-- wikipage start --> <!-- TOC START --> <div id="dw__toc" class="dw__toc"> <h3 class="toggle">Spis treści</h3> <div> <ul class="toc"> <li class="level1"><div class="li"><a href="#przepisywanie_adresow_url">Przepisywanie adresów URL</a></div> <ul class="toc"> <li class="level2"><div class="li"><a href="#opcja_0edycja_kodu_php_i_nazw_plikow">Opcja 0: edycja kodu php i nazw plików</a></div></li> <li class="level2"><div class="li"><a href="#opcja_1serwer_www">Opcja 1: serwer www</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#apache">Apache</a></div></li> <li class="level3"><div class="li"><a href="#iis">IIS</a></div></li> <li class="level3"><div class="li"><a href="#lighttpd">Lighttpd</a></div></li> <li class="level3"><div class="li"><a href="#nginx">Nginx</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#opcja_2dokuwiki">Opcja 2: DokuWiki</a></div></li> <li class="level2"><div class="li"><a href="#czyszczenie_id_sesji_php">Czyszczenie ID sesji PHP</a></div></li> </ul> </li> <li class="level1"><div class="li"><a href="#patrz_rowniez">Patrz również</a></div></li> <li class="level1"><div class="li"><a href="#dyskusja">Dyskusja</a></div></li> </ul> </div> </div> <!-- TOC END --> <h1 class="sectionedit1" id="przepisywanie_adresow_url">Przepisywanie adresów URL</h1> <div class="level1"> <p> Domyślnie DokuWiki nie przepisuje adresów <abbr title="Uniform Resource Locator">URL</abbr>, co daje URLe w postaci: </p> <p> http://example.com/doku.php?id=page </p> <p> Adresy te są uważane za brzydkie i nie są poprawnie indeksowane przez niektóre wyszukiwarki. </p> <p> Rozwiązaniem jest umożliwienie przepisywania <abbr title="Uniform Resource Locator">URL</abbr>, co jest domyślnie wyłączone. DokuWiki obsługuje dwie metody przepisywania <abbr title="Uniform Resource Locator">URL</abbr> w zależności od opcji <a href="/config:userewrite" class="wikilink1" title="config:userewrite" data-wiki-id="config:userewrite">userewrite</a>. Jedna wykorzystuje możliwości przepisania wbudowane w serwer sieciowy, druga obsługę przepisywania adresów <abbr title="Uniform Resource Locator">URL</abbr> pozostawia DokuWiki. Poniższa tabela podsumowuje te opcje. </p> <div class="table sectionedit2"><table class="inline"> <thead> <tr class="row0"> <th class="col0"> Wartość </th><th class="col1"> Info </th><th class="col2"> Przykładowy <abbr title="Uniform Resource Locator">URL</abbr> </th> </tr> </thead> <tr class="row1"> <td class="col0"> 0 </td><td class="col1 leftalign"> Przepisywanie <abbr title="Uniform Resource Locator">URL</abbr> jest zablokowane. Wartość domyślna. </td><td class="col2"> http://example.com/dokuwiki/doku.php?id=wiki:syntax </td> </tr> <tr class="row2"> <td class="col0"> 1 </td><td class="col1 leftalign"> Przepisywanie obsługiwane przez webserver. </td><td class="col2 leftalign"> http://example.com/dokuwiki/wiki:syntax </td> </tr> <tr class="row3"> <td class="col0"> 2 </td><td class="col1 leftalign"> Przepisywanie wykonywane przez DokuWiki. </td><td class="col2"> http://example.com/dokuwiki/doku.php/wiki:syntax </td> </tr> </table></div> <div class="secedit editbutton_table editbutton_2"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Tabela] " /><input type="hidden" name="target" value="table" /><input type="hidden" name="hid" value="table" /><input type="hidden" name="range" value="616-1016" /><button type="submit" title="Tabela">Edytuj</button></div></form></div> <p> Przepisywanie <abbr title="Uniform Resource Locator">URL</abbr> jest domyślnie wyłączone ponieważ wymaga pewnych dodatkowych czynności konfiguracyjnych oprócz ustawienia odpowiedniej <a href="/config:userewrite" class="wikilink1" title="config:userewrite" data-wiki-id="config:userewrite">pocji konfiguracji</a> - czynności te opisane zostały poniżej. </p> <p> <strong>Nota Bene</strong> We wszystkich przykładach dodaj lub zmień linię w pliku conf/local.php na następującą: </p> <div class="table sectionedit3"><table class="inline"> <tr class="row0"> <td class="col0"> $conf['userewrite'] = N; </td> </tr> </table></div> <div class="secedit editbutton_table editbutton_3"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Tabela] " /><input type="hidden" name="target" value="table" /><input type="hidden" name="hid" value="table1" /><input type="hidden" name="range" value="1354-1382" /><button type="submit" title="Tabela">Edytuj</button></div></form></div> <p> gdzie N przyjmuje wartość 1 lub 2. (Nie trzeba nic wpisywać, jeśli potrzebna jest opcja 0.) </p> </div> <div class="secedit editbutton_section editbutton_1"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Przepisywanie adresów URL] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="przepisywanie_adresow_url" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1-1481" /><button type="submit" title="Przepisywanie adresów URL">Edytuj</button></div></form></div> <h2 class="sectionedit4" id="opcja_0edycja_kodu_php_i_nazw_plikow">Opcja 0: edycja kodu php i nazw plików</h2> <div class="level2"> <p> Tutaj nie chodzi o przepisanie adresu <abbr title="Uniform Resource Locator">URL</abbr>, ale sytuacji, gdy trzeba zastąpić „doku.php” z powodu lokalizacji (doku.php nie brzmi tak samo dobrze we wszystkich językach). Wykonałem to na serwerze Apache, ale myślę, że z innymi jest podobnie lub nawet tak samo. </p> <ul> <li class="level1"><div class="li"> Jeśli chcesz: Zmienić nazwę folderu (domyślnie to 'dokuwiki' - na przykład: 'mywiki'). Nie potrzeba zmiany ustawień w DokuWiki.</div> </li> <li class="level1 node"><div class="li"> Jeśli chcesz: Zmienić domyślną nazwę pliku 'doku.php' (na przykład: 'start.php')</div> <ol> <li class="level2"><div class="li"> Zmień nazwę pliku wewnątrz 'index.php' (plik w folderze dokuwiki)<pre class="code php"><a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">(</span><span class="st0">"Location: start.php"</span><span class="br0">)</span><span class="sy0">;</span></pre> </div> </li> <li class="level2"><div class="li"> Zmień nazwę pliku w '<a href="/devel:preload" class="wikilink1" title="devel:preload" data-wiki-id="devel:preload">inc/preload.php</a>' (ścieżka z folderu dokuwiki). Utwórz plik jeśli nie istnieje. <code>inc/preload.php</code> nie jest domyślnie częścią dokuwiki, zatem nie zostanie nadpisany przez aktualizację dokuwiki. <pre class="code php"><span class="kw2"><?php</span> <span class="kw1">if</span><span class="br0">(</span><span class="sy0">!</span><a href="http://www.php.net/defined"><span class="kw3">defined</span></a><span class="br0">(</span><span class="st_h">'DOKU_SCRIPT'</span><span class="br0">)</span><span class="br0">)</span> <a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">(</span><span class="st_h">'DOKU_SCRIPT'</span><span class="sy0">,</span><span class="st_h">'start.php'</span><span class="br0">)</span><span class="sy0">;</span></pre> </div> </li> </ol> </li> </ul> <p> I to wszystko! </p> <p> Jeśli znajdziesz jeszcze jakiś plik php do zmiany, wpisz go tutaj, proszę. </p> <p> Pozdrowienia <br/> Bronek </p> </div> <div class="secedit editbutton_section editbutton_4"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Opcja 0: edycja kodu php i nazw plików] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="opcja_0edycja_kodu_php_i_nazw_plikow" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1482-2609" /><button type="submit" title="Opcja 0: edycja kodu php i nazw plików">Edytuj</button></div></form></div> <h2 class="sectionedit5" id="opcja_1serwer_www">Opcja 1: serwer www</h2> <div class="level2"> </div> <div class="secedit editbutton_section editbutton_5"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Opcja 1: serwer www] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="opcja_1serwer_www" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="2610-2643" /><button type="submit" title="Opcja 1: serwer www">Edytuj</button></div></form></div> <h3 class="sectionedit6" id="apache">Apache</h3> <div class="level3"> <p> Przepisywanie URLi w Apache wykonywane jest przez moduł <strong>mod_rewrite</strong> w <a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html" class="urlextern" title="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html">Apache 1</a> lub <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html" class="urlextern" title="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">Apache 2</a>. Moduł jest włączany w httpd.conf przez następującą linię (upewnij się, że nie jest wykomentowana): </p> <pre class="code apache"><span class="kw1">LoadModule</span> rewrite_module modules/mod_rewrite.so</pre> <p> W wielu odmianach Linux (Ubuntu, Debian, etc) możesz włączyć mod_rewrite przez: </p> <pre class="code bash"><span class="kw2">sudo</span> a2enmod rewrite</pre> <p> Konfiguracja modułu mod_rewrite odbywa się za pomocą tzw <strong>reguł przepisywania</strong>, które mogą być zdefiniowane bezpośrednio w głównym konfigu serwera lub w pliku .htaccess znajdującym się w głównym katalogu DokuWiki. DokuWiki jest dostarczana z plikiem .htaccess.dist, który zawiera niezbędne reguły przepisywania dla trybu 1, ale wykomentowane. Wystarczy skopiować plik do .htaccess (w folderze zawierającym doku.php, zastrzeżenie dla użytkowników Debian<sup><a href="#fn__1" id="fnt__1" class="fn_top">1)</a></sup>) i odkomentuj linie by włączyć przepisywanie. </p> <pre class="code apache"><span class="kw1">RewriteEngine</span> <span class="kw2">on</span> <span class="kw1">RewriteBase</span> /dokuwiki <span class="kw1">RewriteRule</span> ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L] <span class="kw1">RewriteRule</span> ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L] <span class="kw1">RewriteRule</span> ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L] <span class="kw1">RewriteRule</span> ^$ doku.php [L] <span class="kw1">RewriteCond</span> %{REQUEST_FILENAME} !-f <span class="kw1">RewriteCond</span> %{REQUEST_FILENAME} !-d <span class="kw1">RewriteRule</span> (.*) doku.php?id=$1 [QSA,L] <span class="kw1">RewriteRule</span> ^index.php$ doku.php</pre> <p> W linii <code>RewriteBase /dokuwiki</code>, powinieneś zastąpić <code>/dokuwiki</code> nazwą folderu używaną przez ciebie w adresie <abbr title="Uniform Resource Locator">URL</abbr> by dostać się do wiki. Powiedzmy, że twoim zwykłym (Opcja 0) adresem <abbr title="Uniform Resource Locator">URL</abbr> jest <a href="http://www.whatever.com/projects/documents/doku.php" class="urlextern" title="http://www.whatever.com/projects/documents/doku.php">http://www.whatever.com/projects/documents/doku.php</a> . Powinieneś ustawić powyższą linię na <code>RewriteBase /projects/documents</code>. Jednak czasami ta linia nie jest w ogóle potrzebna. </p> </div> <h4 id="kilka_uwag">Kilka uwag</h4> <div class="level4"> <p> Pliki .htaccess są uznawane tylko gdy akceptuje je podstawowa konfiguracja Apache. Wiele domyślnych instalacji Apache nie robi tego. By je włączyć, spróbuj dodać co następuje do httpd.conf: </p> <pre class="code apache"><<span class="kw3">Directory</span> /path/to/dokuwiki> <span class="kw1">AllowOverride</span> AuthConfig FileInfo Limit </<span class="kw3">Directory</span>></pre> <p> PS: Powyższy zapis spowoduje <code>AllowOverride</code> tylko na tym, co jest potrzebne do działania domyślnej konfiguracji. Jeśli u ciebie to nie działa, spróbuj użyć <code>AllowOverride All</code> </p> <p> Ewentualnie możesz po prostu określić wyżej wymienione reguły przepisywania bezpośrednio w httpd.conf: </p> <pre class="code apache"><<span class="kw3">Directory</span> /path/to/dokuwiki> <span class="kw1">RewriteEngine</span> <span class="kw2">on</span> ... reguły przepisywania tutaj ... </<span class="kw3">Directory</span>></pre> <p> Może być konieczne ponowne uruchomienie Apache, aby zmiany zadziałały. </p> <p> Niektórzy użytkownicy zgłaszali błąd „403 - Forbidden” po włączeniu wspierania przepisywania. Ustawienie opcji FollowSymLinks wydaje się rozwiązywać problem: </p> <pre class="code apache"><span class="kw1">Options</span> +<span class="kw2">FollowSymlinks</span> <span class="kw1">RewriteEngine</span> <span class="kw2">on</span> ...etc.</pre> <p> Reguły przepisywania podane powyżej zmapują wszystkie nieistniejące pliki i katalogi do głównego dyspozytora DokuWiki, co może zostać zastosowane jako wirtualne odwzorowania (aliasy). Niektóre witryny hosta mapują statystyki dostępu do sieci na wirtualny folder /stats . Aby mieć nadal dostęp do tego wirtualnego katalogu, musisz wyłączyć je w warunkach przepisywania. Przykład: </p> <pre class="code apache">... <span class="kw1">RewriteCond</span> %{REQUEST_FILENAME} !-f <span class="kw1">RewriteCond</span> %{REQUEST_FILENAME} !-d <span class="kw1">RewriteCond</span> %{REQUEST_URI} !^/stats/(.*)$ ...</pre> <p> Jeśli pracujesz bez RewriteBase, być może dlatego, że wynajmujesz u dostawcy dedykowany VirtualHost, musisz dostosować reguły przepisywania. </p> <pre class="code apache"><span class="kw1">RewriteRule</span> ^/_media/(.*) /lib/exe/fetch.php?media=$1 [QSA,L,R] <span class="kw1">RewriteRule</span> ^/_detail/(.*) /lib/exe/detail.php?media=$1 [QSA,L,R] <span class="kw1">RewriteRule</span> ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 [QSA,L] <span class="kw1">RewriteRule</span> ^/$ /doku.php [L] <span class="kw1">RewriteCond</span> %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f <span class="kw1">RewriteCond</span> %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d <span class="kw1">RewriteRule</span> (.*) /doku.php?id=$1 [QSA,L]</pre> <p> Każdy blok RewriteRule musi mieć dołączony wiodący ukośnik, inaczej Apache zwróci kod odpowiedzi 400. </p> <p> Pożesz potrzebować zmiany Jeśli masz plik <strong><code>robots.txt</code></strong> i/lub <strong><code>sitemap.xml</code></strong> w folderze głównym dokumentów (na bota Google), musisz wyłączyć te pliki z przepisywania w pliku <code>.htaccess</code>: </p> <pre class="code apache"><span class="kw1">RewriteCond</span> %{REQUEST_FILENAME} !robots\.txt <span class="kw1">RewriteCond</span> %{REQUEST_FILENAME} !sitemap\.xml</pre> <p> Jeśli adresy <abbr title="Uniform Resource Locator">URL</abbr> ciągle nie są poprawnie przepisywane, dwa razy sprawdź, czy wszystko ustawienie jest faktycznie prawidłowo ustawione. Na stronie ustawień sprawdź, czy opcja „Proste adresy <abbr title="Uniform Resource Locator">URL</abbr>” jest ustawiona na „.htaccess”. Albo dokładnie zweryfikuj, czy $conf['userewrite'] jest ustawione na '1' w conf/local.php . </p> </div> <div class="secedit editbutton_section editbutton_6"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Apache] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="apache" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="2644-7764" /><button type="submit" title="Apache">Edytuj</button></div></form></div> <h3 class="sectionedit7" id="iis">IIS</h3> <div class="level3"> </div> <h4 id="url_rewrite_module_for_iis_7_microsoft_s_official">URL Rewrite Module for IIS 7 (Microsoft's official)</h4> <div class="level4"> <p> <a href="http://learn.iis.net/page.aspx/737/url-rewrite-module-2/" class="urlextern" title="http://learn.iis.net/page.aspx/737/url-rewrite-module-2/">URL Rewrite Module</a> is a Microsoft-supported rewrite module that can be installed on IIS 7 and newer. Starting from version 2.0 it has a wizard that will convert .htaccess rules to its own format (it uses standard IIS configuration mechanism which stores the site-specific settings into a <code>web.config</code> file in the root folder). </p> <p> How to configure it for DokuWiki: </p> <ol> <li class="level1"><div class="li"> Make sure you have the .htaccess file configured as described for Apache above</div> </li> <li class="level1"><div class="li"> Install <abbr title="Uniform Resource Locator">URL</abbr> Rewrite Module 2.0 from Microsoft's website <a href="http://www.iis.net/expand/URLRewrite" class="urlextern" title="http://www.iis.net/expand/URLRewrite">http://www.iis.net/expand/URLRewrite</a>. <strong>Make sure you install the version 2.0</strong> - it is a Release Candidate at the time of writing (January 2010).</div> </li> <li class="level1"><div class="li"> In IIS Manager, navigate to the site that hosts DokuWiki and double-click „<abbr title="Uniform Resource Locator">URL</abbr> Rewrite”</div> </li> <li class="level1"><div class="li"> In the right pane („action pane”), find „Import Rules…” and click it</div> </li> <li class="level1"><div class="li"> Select the .htaccess file and click Import</div> </li> <li class="level1"><div class="li"> It may report an error that a RewriteBase rule is not supported. If you see this error, comment out the line in htaccess rewrite rules and run the import again</div> </li> <li class="level1"><div class="li"> If the import succeeded, click Apply in the actions pane</div> </li> <li class="level1"><div class="li"> In your DokuWiki configuration, set <a href="/config:userewrite" class="wikilink1" title="config:userewrite" data-wiki-id="config:userewrite">userewrite</a> to 1 (in the web UI, it will be seen as „.htaccess”)</div> </li> </ol> <p> This procedure worked on my installation where DokuWiki was installed in the website root. I don't know for sure if these steps are enough if DokuWiki is installed in a subfolder (like <code>/sample/documentation</code>) but in principle, <abbr title="Uniform Resource Locator">URL</abbr> Rewrite module supports DokuWiki and for my scenario, it was able to convert .htaccess without any problems. </p> </div> <h4 id="isapi_rewrite_lite">ISAPI Rewrite Lite</h4> <div class="level4"> <p> IIS doesn't come standard with a rewrite module. I used <a href="http://www.isapirewrite.com/" class="urlextern" title="http://www.isapirewrite.com/">ISAPI Rewrite Lite</a> (free) successful with these rewrite rules (see the file <code>C:\Program Files\Helicon\ISAPI_Rewrite\httpd.ini</code>): </p> <pre class="code apache"><span class="co1"># Dokuwiki rules</span> <span class="co1"># Fix RSS Feeds</span> <span class="kw1">RewriteRule</span> ^(/wiki/)feed.php $1/feed.php [I,L] <span class="kw1">RewriteRule</span> ^(/wiki/)feed.php\?(.*) $1/feed.php\?mode=$2&$3 [I,L] <span class="kw1">RewriteRule</span> ^(/wiki/)_media/(.*)\?(.*) $1lib/exe/fetch.php\?media=$2&$3 [I,L] <span class="kw1">RewriteRule</span> ^(/wiki/)_detail/(.*)\?(.*) $1lib/exe/detail.php\?media=$2&$3 [I,L] <span class="kw1">RewriteRule</span> ^(/wiki/)_detail/(.*) $1lib/exe/detail.php\?media=$2 [I,L] <span class="kw1">RewriteRule</span> ^(/wiki/)_export/([^/]+)/(.*) $1doku.php?do=export_$2&id=$3 [I,L] <span class="kw1">RewriteRule</span> (/wiki/) $1doku.php [I,L] <span class="kw1">RewriteRule</span> ^(/wiki/)\?idx=(.*) $1doku.php\?idx=$2 [I,L] <span class="kw1">RewriteRule</span> ^(/wiki/)lib/(.*) $1lib/$2 [I,L] <span class="kw1">RewriteRule</span> ^(/wiki/)(.*)\?do=(.*) $1doku.php\?id=$2&do=$3 [I,L] <span class="kw1">RewriteRule</span> ^(/wiki/)doku.php\?id=(.*) $1doku.php\?id=$2 [I,L] <span class="kw1">RewriteRule</span> ^(/wiki/)(.*) $1doku.php\?id=$2 [I,L] <span class="co1"># this rule fixes a problem to see the old revisions</span> <span class="kw1">RewriteRule</span> ^(/wiki/)(.*)\?(.*) $1doku.php\?id=$2&$3 [I,L] <span class="co1"># Diff still broken unless none is selected under 'use nice URL' options. You can still enter and link to nice URLs but the DokuWiki program will use normal naming.</span></pre> <p> For all lines with <code>RewriteRule ^(/wiki/)</code>, you need to replace the <code>(/wiki/)</code> with whatever directory you use in your <abbr title="Uniform Resource Locator">URL</abbr> to get to the wiki. Say that your normal (Option 0) <abbr title="Uniform Resource Locator">URL</abbr> is <a href="http://www.whatever.com/projects/documents/doku.php" class="urlextern" title="http://www.whatever.com/projects/documents/doku.php">http://www.whatever.com/projects/documents/doku.php</a> . You will need to set the above line to <code>^(/projects/documents/)</code>. </p> </div> <h4 id="ionics_isapi_rewrite_filter">Ionics Isapi Rewrite Filter</h4> <div class="level4"> <p> It is also possible to use <a href="http://www.codeplex.com/IIRF" class="urlextern" title="http://www.codeplex.com/IIRF">Ionics Isapi Rewrite Filter</a>, which is free and open-source. </p> <pre class="code apache">IterationLimit <span class="nu0">1</span> <span class="kw1">RewriteRule</span> ^/_media/(.*) /lib/exe/fetch.php?media=$1 [QSA,L] <span class="kw1">RewriteRule</span> ^/_detail/(.*) /lib/exe/detail.php?media=$1 [QSA,L] <span class="kw1">RewriteRule</span> ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 [QSA,L] <span class="kw1">RewriteRule</span> ^/$ /doku.php [QSA,L] <span class="co1"># infinite redirect fix</span> <span class="kw1">RewriteCond</span> %{REQUEST_FILENAME} !-d <span class="kw1">RewriteRule</span> ^/(.*)/$ /doku.php?id=$1 [QSA,L] <span class="co1"># end fix</span> <span class="kw1">RewriteCond</span> %{REQUEST_FILENAME} !-f <span class="kw1">RewriteCond</span> %{REQUEST_FILENAME} !-d <span class="kw1">RewriteRule</span> ^/(.*) /doku.php?id=$1 [QSA,L]</pre> </div> <div class="secedit editbutton_section editbutton_7"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[IIS] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="iis" /><input type="hidden" name="codeblockOffset" value="11" /><input type="hidden" name="range" value="7765-11908" /><button type="submit" title="IIS">Edytuj</button></div></form></div> <h3 class="sectionedit8" id="lighttpd">Lighttpd</h3> <div class="level3"> <p> Assuming you have followed <a href="/install:lighttpd" class="wikilink1" title="install:lighttpd" data-wiki-id="install:lighttpd">instructions</a> for how to set up dokuwiki under lighttpd. If you haven't, define var.dokudir as shown in the example. </p> <pre class="code bash"><span class="co0"># rewrites for dokuwiki</span> <span class="re1">$HTTP</span><span class="br0">[</span><span class="st0">"url"</span><span class="br0">]</span> =~ <span class="st0">"^"</span> + var.dokudir <span class="br0">{</span> index-file.names = <span class="br0">(</span><span class="st0">"doku.php"</span><span class="br0">)</span> <span class="br0">}</span> url.rewrite = <span class="br0">(</span> <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/lib/.*$"</span> =<span class="sy0">></span> <span class="st0">"$0"</span>, <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/_media/(.*)?\?(.*)$"</span> =<span class="sy0">></span> var.dokudir + <span class="st0">"/lib/exe/fetch.php?media=$1&$2"</span>, <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/_media/(.*)$"</span> =<span class="sy0">></span> var.dokudir + <span class="st0">"/lib/exe/fetch.php?media=$1"</span>, <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/_detail/(.*)?\?(.*)$"</span> =<span class="sy0">></span> var.dokudir + <span class="st0">"/lib/exe/detail.php?media=$1&$2"</span>, <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/_detail/(.*)?$"</span> =<span class="sy0">></span> var.dokudir + <span class="st0">"/lib/exe/detail.php?media=$1"</span>, <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/_export/([^/]+)/(.*)\?(.*)$"</span> =<span class="sy0">></span> var.dokudir + <span class="st0">"/doku.php?do=export_$1&id=$2&$3"</span>, <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/_export/([^/]+)/(.*)"</span> =<span class="sy0">></span> var.dokudir + <span class="st0">"/doku.php?do=export_$1&id=$2"</span>, <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/doku.php.*"</span> =<span class="sy0">></span> <span class="st0">"$0"</span>, <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/feed.php.*"</span> =<span class="sy0">></span> <span class="st0">"$0"</span>, <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/(.*)\?(.*)"</span> =<span class="sy0">></span> var.dokudir + <span class="st0">"/doku.php?id=$1&$2"</span>, <span class="st0">"^"</span> + var.dokudir + <span class="st0">"/(.*)"</span> =<span class="sy0">></span> var.dokudir + <span class="st0">"/doku.php?id=$1"</span> <span class="br0">)</span></pre> <p> Enable the rewrite module in lighttpd.conf by adding „mod_rewrite” in server.modules. An example config can be seen <a href="/install:lighttpd_config_example" class="wikilink1" title="install:lighttpd_config_example" data-wiki-id="install:lighttpd_config_example">here</a>. </p> </div> <div class="secedit editbutton_section editbutton_8"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Lighttpd] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="lighttpd" /><input type="hidden" name="codeblockOffset" value="13" /><input type="hidden" name="range" value="11909-13354" /><button type="submit" title="Lighttpd">Edytuj</button></div></form></div> <h3 class="sectionedit9" id="nginx">Nginx</h3> <div class="level3"> <p> Nginx jest bardzo szybkim i stabilnym httpd, dowiedz się więcej na stronie <a href="http://nginx.org/" class="urlextern" title="http://nginx.org/">projektu nginx</a>, oraz na angielskiej <a href="http://wiki.nginx.org/" class="urlextern" title="http://wiki.nginx.org/">wiki</a>. W poniższym przykładzie folder główny serwera to /var/www, a wiki została rozpakowana do /var/www/dokuwiki. </p> <p> Dla NGINX 0.7.65 lub późniejszych ( <a href="http://wiki.nginx.org/Dokuwiki" class="urlextern" title="http://wiki.nginx.org/Dokuwiki">źródło konfiguracji</a> ) </p> <pre class="code">server { server_name wiki.domain.tld; root /var/www/dokuwiki; location / { index doku.php; try_files $uri $uri/ @dokuwiki; } location @dokuwiki { rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; rewrite ^/(.*) /doku.php?id=$1 last; } location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/tmp/phpcgi.socket; } }</pre> <p> Dla NGINX 0.6.x lub późniejszych (testowano do wersji 0.7.65) </p> <pre class="code">server { listen 80; server_name example.com www.example.com ; #maximum file upload size is 4MB - change accordingly if needed client_max_body_size 4M; client_body_buffer_size 128k; root /var/www/wiki/; index index.html index.php; location / { if (-f $request_filename) { break; } if (!-f $request_filename) { #dokuwiki is installed in the root of the site rewrite ^/(.*)?(.*) /doku.php?id=$1&$2 last; rewrite ^/$ /doku.php last; break; } } #dokuwiki is installed in the root of the site rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; location ~ \.php$ { fastcgi_pass phpfcgi; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }</pre> <p> Dla nginx 0.7.27 lub wyższych (ze wsparciem try_files) </p> <pre class="code">server { listen 80; server_name example.com www.example.com; #maximum file upload size is 4MB - change accordingly if needed client_max_body_size 4M; client_body_buffer_size 128k; root /var/www/wiki; index doku.php; location / { try_files $uri $uri/ @dokuwiki; } location @dokuwiki { rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; rewrite ^/(.*) /doku.php?id=$1&$args last; } location ~ \.php$ { if (!-f $request_filename) { return 404; } include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param REDIRECT_STATUS 200; fastcgi_pass 127.0.0.1:9000; } }</pre> </div> <h4 id="uwagi">Uwagi</h4> <div class="level4"> <p> Nginx posiada pełną obsługę fastcgi, prosimy sprawdzić w dokumencie <a href="http://wiki.codemongers.com/NginxHttpFcgiModule" class="urlextern" title="http://wiki.codemongers.com/NginxHttpFcgiModule">nginx fastcgi</a> by dostosować własną konfigurację. </p> <p> Dla użycia prtokołu https musi być ustawiona zmienna serwera HTTPS by włączyć właściwe linkowanie dokuwiki. Może to być wykonane w sekcji serwera podobnej do: </p> <pre class="code">server { listen 443; ... location ~ .php$ { ... include fastcgi_params; ## sets $_SERVER['HTTPS'] fastcgi_param HTTPS on; }</pre> <p> Ostatnie słowo kluczowe w regułach przepisywania przed ustawieniem lokalizacji zapewnia, że przepisanie wykona się tylko raz. Powinieneś zastąpić wszystkie /dokuwiki/ występujące powyżej folderu wiki na relatywny do folderu głównego serwera. </p> <p> Jeśli tylko przekopiowaliście powyższą konfigurację, upewnij się, że dodałeś lokacje by zabezpieczyć foldery, jak to opisano na stronie <a href="/pl:security" class="wikilink1" title="pl:security" data-wiki-id="pl:security">Bezpieczeństwa</a>. </p> </div> <div class="secedit editbutton_section editbutton_9"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Nginx] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="nginx" /><input type="hidden" name="codeblockOffset" value="14" /><input type="hidden" name="range" value="13355-17423" /><button type="submit" title="Nginx">Edytuj</button></div></form></div> <h2 class="sectionedit10" id="opcja_2dokuwiki">Opcja 2: DokuWiki</h2> <div class="level2"> <p> W pliku conf/local.php, dodaj lub zmień linię na następującą: </p> <div class="table sectionedit11"><table class="inline"> <tr class="row0"> <td class="col0"> $conf['userewrite'] = 2; </td> </tr> </table></div> <div class="secedit editbutton_table editbutton_11"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Tabela] " /><input type="hidden" name="target" value="table" /><input type="hidden" name="hid" value="table2" /><input type="hidden" name="range" value="17523-17551" /><button type="submit" title="Tabela">Edytuj</button></div></form></div> <p> Opcja ta nie wymaga żadnych zmian ustawień serwera. Niemniej jednak opiera się o funkcję PATH_INFO standardu CGI wprowadzonego przez. Wiadomo, że IIS <a href="http://bugs.dokuwiki.org/index.php?do=details&task_id=718" class="interwiki iw_bug" title="http://bugs.dokuwiki.org/index.php?do=details&task_id=718">nie działa</a> z tym ustawieniem<sup><a href="#fn__2" id="fnt__2" class="fn_top">2)</a></sup>. IIS6 (MS Server 2003) działa poprawnie, gdy <code>basedir</code> jest ustawiona na <code>/</code>. </p> <p> Używanie <strong>Alias directive</strong> Apache z tą opcją może prowadzić do ogromnego bólu głowy i uszkodzenia wiki! ⇐ Poprawka, jaką należy zastosować jest dostępna tutaj: <a href="https://www.trg-oha.de/~sstrickroth/dokuwiki-alias.patch" class="urlextern" title="https://www.trg-oha.de/~sstrickroth/dokuwiki-alias.patch">https://www.trg-oha.de/~sstrickroth/dokuwiki-alias.patch</a> </p> </div> <div class="secedit editbutton_section editbutton_10"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Opcja 2: DokuWiki] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="opcja_2dokuwiki" /><input type="hidden" name="codeblockOffset" value="17" /><input type="hidden" name="range" value="17424-18095" /><button type="submit" title="Opcja 2: DokuWiki">Edytuj</button></div></form></div> <h2 class="sectionedit12" id="czyszczenie_id_sesji_php">Czyszczenie ID sesji PHP</h2> <div class="level2"> <p> Pomimo użycia „czystych” URLi możesz natrafić na parametr „DokuWiki” w adresie <abbr title="Uniform Resource Locator">URL</abbr> wyglądający tak: </p> <p> PHP session ID: </p> <pre class="code">http://example.com/example?DokuWiki=c81a95369a66576982119e2a60b557a5</pre> <p> Ten parametr to ID sesji PHP i jest dodawany automatycznie przez PHP. Jest on zupełnie nie związany z przepisywaniem adresów. By go wyłączyć,możesz wymusić na PHP używanie zawsze ciasteczek dla sesji ustawiając opcję <code>session.use_only_cookies</code> w PHP. </p> <p> Często jest to robione w pliku konfiguracyjnym php.ini (gdy używasz usługi hostingu, sprawdź stronę wsparcia firmy hostującej by dowiedzieć się, czy i jak możesz ustawić te wartości): </p> <pre class="code ini">session.use_only_cookies<span class="sy0">=</span><span class="re2">1</span></pre> <p> Jeśli wciżą widać identyfikator sesji, wypróbuj: </p> <pre class="code ini">session.use_trans_sid<span class="sy0">=</span><span class="re2">0</span></pre> <p> Gdy PHP używany jest jako moduł Apache, możesz być w stanie podmienić te wartości przy pomocy pliku .htaccess używając następującej składni: </p> <pre class="code">php_flag session.use_only_cookies on php_flag session.use_trans_sid off</pre> <p> Jeśli nie możesz wykorzystać żadnego z tych rozwiązań (wiele hostów blokuje edycję php.ini i użycie php_flag w .htaccess), będziesz musiał zmienić plik conf/local.php. Zauważ, że powyższe ustawienia nie mogą być zmienione przy użyciu ini_set() od wersji 4.2.3 PHP, zatem <strong>jedynm</strong> sposobem wykonania tego jest </p> <pre class="code php"><a href="http://www.php.net/ini_set"><span class="kw3">ini_set</span></a><span class="br0">(</span><span class="st_h">'url_rewriter.tags'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="br0">)</span><span class="sy0">;</span></pre> <blockquote><div class="no"> Miałem problem z błędnym ustawieniem mojego <strong>session.cookie_domain</strong> (wykrzystuję wirtualny hosting i nazwa mojej domeny była ustawiona niepoprawnie). Dodałem <pre class="code">php_value session.cookie_domain www.my.domain.com</pre> <p> do odpowiedniego virtualhost w moim httpd.conf (chociaż .htaccess powinien również działać), i zanieczyszczone adresy <abbr title="Uniform Resource Locator">URL</abbr> zniknęły. Analogicznie, jeśli nie masz dostępu do php.ini ani konfiguracji, powinienes mieć możliwość użycia <strong>ini_set('PHP variable', 'value');</strong> by uzyskać ten sam efekt (plik conf/local.php wydaje się być dobrym miejscem do umieszczenia tego, jako że ten plik jest dołączany zanim sesja jest uruchamiana). </p> </div></blockquote> <blockquote><div class="no"> W moim przypadku, FastCGI powodował pojawianie się identyfikatorów sesji. Wyłączenie go usunęło je.</div></blockquote> </div> <div class="secedit editbutton_section editbutton_12"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Czyszczenie ID sesji PHP] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="czyszczenie_id_sesji_php" /><input type="hidden" name="codeblockOffset" value="17" /><input type="hidden" name="range" value="18096-20366" /><button type="submit" title="Czyszczenie ID sesji PHP">Edytuj</button></div></form></div> <h1 class="sectionedit13" id="patrz_rowniez">Patrz również</h1> <div class="level1"> <ul> <li class="level1"><div class="li"> <a href="/tips:httpslogin" class="wikilink1" title="tips:httpslogin" data-wiki-id="tips:httpslogin">Reguły przepisywania dla bezpiecznego logowania</a></div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_13"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Patrz również] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="patrz_rowniez" /><input type="hidden" name="codeblockOffset" value="23" /><input type="hidden" name="range" value="20367-20471" /><button type="submit" title="Patrz również">Edytuj</button></div></form></div> <h1 class="sectionedit14" id="dyskusja">Dyskusja</h1> <div class="level1"> <ul> <li class="level1"><div class="li"> I'm using IIRF under IIS6 and the search box always redirected me back to /doku.php. I'm not sure if it's just my config, but the way I fixed it was to add the rule <code>RewriteRule ^/\?(.*) /doku.php?$1 [QSA,L]</code> underneath the <code>_export</code> rule.</div> </li> <li class="level1"><div class="li"> Please note that it took me a few hours to figure out all by myself that I needed to add <pre class="code">$conf['userewrite'] = 1;</pre> <p> in my conf/local.php file. I almost erased my Dokuwiki installation because of those two little missing details. — <em>bstp 2010-11-26</em> </p> </div> </li> <li class="level1 node"><div class="li"> Even when using above configuration with Apache, often the <abbr title="Uniform Resource Locator">URL</abbr> becomes example.com/doku.php, no matter at what page you are. I could not find a solution to that.</div> <ul> <li class="level2"><div class="li"> It's an implementation issue, not a rewriting problem. — <em>BlackFog 2007-12-19 15:42</em></div> </li> </ul> </li> <li class="level1"><div class="li"> Option = 2 works with IIS 6 (Windows 2003) and current nightly build if <code>basedir</code> is set. — <em>BlackFog 2007-12-19 15:42</em></div> </li> <li class="level1"><div class="li"> For Option = 2, it seems that we need to specify the value of <code>basedir</code> no matter which system we are using (Apache or IIS, etc); even when <code>doku.php</code> is just in the root dir we still need to specify <code>basedir</code> as <code>/</code> — <em><a href="mailto:xie%20%5Bat%5D%20yihui%20%5Bdot%5D%20name" class="mail" title="xie [at] yihui [dot] name">Yihui Xie</a> 2008/05/28 20:09</em></div> </li> <li class="level1 node"><div class="li"> For a long time I used DokuWiki (2) rewrite option, and now there are some links like <code>…/wiki/doku.php/…</code> spread through the internet. If now I'll use <code>.htaccess</code> rewrite method (1), which is discussed here, all those old links with <code>doku.php</code> will become invalid. Is it possible to add some rules so that old links were still valid? If yes, please, explain how can it be done. </div> <ul> <li class="level2"><div class="li"> The solution was to add <code>RewriteRule doku.php/(.*) doku.php?id=$1 [QSA,L]</code> right after <code>RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L]</code> line.</div> </li> </ul> </li> <li class="level1"><div class="li"> Using rewrite rules for nginx that are presented breaks retrieval of images from dokuwiki. It seems to be not using the default value of root:<pre class="code">[error] 27613#0: *1 open() "/usr/local/nginx/html/wiki/lib/tpl/arctic/images/button-firefox.png" failed</pre> <p> My solutions is to add the following to the nginx.conf: </p> <pre class="code">location /wiki/lib/ { root /var/www/path/to/site.../; }</pre> <p> — <em>thedimi.net 2009-03-06 00:00</em> </p> </div> </li> <li class="level1"><div class="li"> With IIS and Helicon Isapi_Rewrite, if DokuWiki is in the root, the code for httpd.ini should be (note the absence of the subdirectory and the fact that there are 2 lines for „_media” and not just 1 as mentioned in the code above): <pre class="code"># Dokuwiki rules # Fix RSS Feeds RewriteRule ^(/)feed.php $1/feed.php [I,L] RewriteRule ^(/)feed.php\?(.*) $1/feed.php\?mode=$2&$3 [I,L] RewriteRule ^(/)_media/(.*)\?(.*) $1lib/exe/fetch.php\?media=$2&$3 [I,L] RewriteRule ^(/)_media/(.*) $1lib/exe/fetch.php\?media=$2 [I,L] RewriteRule ^(/)_detail/(.*)\?(.*) $1lib/exe/detail.php\?media=$2&$3 [I,L] RewriteRule ^(/)_detail/(.*) $1lib/exe/detail.php\?media=$2 [I,L] RewriteRule ^(/)_export/([^/]+)/(.*) $1doku.php?do=export_$2&id=$3 [I,L] RewriteRule (/) $1doku.php [I,L] RewriteRule ^(/)\?idx=(.*) $1doku.php\?idx=$2 [I,L] RewriteRule ^(/)lib/(.*) $1lib/$2 [I,L] RewriteRule ^(/)(.*)\?do=(.*) $1doku.php\?id=$2&do=$3 [I,L] # this rule fixes a problem to see the old revisions RewriteRule ^(/)(.*)\?(.*) $1doku.php\?id=$2&$3 [I,L] # Diff still broken unless none is selected under 'use nice URL' options. You can still enter and link to nice URLs but the DokuWiki program will use normal naming.</pre> </div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_14"><form class="button btn_secedit" method="post" action="/pl:rewrite"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1399059006" /><input type="hidden" name="summary" value="[Dyskusja] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="dyskusja" /><input type="hidden" name="codeblockOffset" value="23" /><input type="hidden" name="range" value="20472-" /><button type="submit" title="Dyskusja">Edytuj</button></div></form></div><div class="footnotes"> <div class="fn"><sup><a href="#fnt__1" id="fn__1" class="fn_bot">1)</a></sup> <div class="content">W Debian ie 6 przynajmniej nie musisz niczego kopiować. <code>/usr/share/dokuwiki/.htaccess</code> jest linkiem do <code>/etc/dokuwiki/.htaccess</code>. Nie ma już zatem żadnego zastrzeżenia.</div></div> <div class="fn"><sup><a href="#fnt__2" id="fn__2" class="fn_bot">2)</a></sup> <div class="content">Patrz <a href="#dyskusja" title="pl:rewrite ↵" class="wikilink1">Dyskusja</a></div></div> </div> <!-- wikipage stop --> </div> <div class="docInfo"><bdi>pl/rewrite.txt</bdi> · ostatnio zmienione: <time datetime="2014-05-02T21:30:06+0200">2014-05-02 21:30</time> przez <bdi>176.108.135.143</bdi></div> <hr class="a11y" /> </div></main><!-- /content --> <!-- PAGE ACTIONS --> <nav id="dokuwiki__pagetools" aria-labelledby="dokuwiki__pagetools__heading"> <h3 class="a11y" id="dokuwiki__pagetools__heading">Narzędzia strony</h3> <div class="tools"> <ul> <li class="edit"><a href="/pl:rewrite?do=edit" title="Edytuj stronę [e]" rel="nofollow" accesskey="e"><span>Edytuj stronę</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg></a></li><li class="revs"><a href="/pl:rewrite?do=revisions" title="Poprzednie wersje [o]" rel="nofollow" accesskey="o"><span>Poprzednie wersje</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7v5.11l4.71 2.79.79-1.28-4-2.37V7m0-5C8.97 2 5.91 3.92 4.27 6.77L2 4.5V11h6.5L5.75 8.25C6.96 5.73 9.5 4 12.5 4a7.5 7.5 0 0 1 7.5 7.5 7.5 7.5 0 0 1-7.5 7.5c-3.27 0-6.03-2.09-7.06-5h-2.1c1.1 4.03 4.77 7 9.16 7 5.24 0 9.5-4.25 9.5-9.5A9.5 9.5 0 0 0 12.5 2z"/></svg></a></li><li class="backlink"><a href="/pl:rewrite?do=backlink" title="Odnośniki" rel="nofollow"><span>Odnośniki</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.59 13.41c.41.39.41 1.03 0 1.42-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0 5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24 2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0 5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24 2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24.973.973 0 0 1 0-1.42z"/></svg></a></li><li class="top"><a href="#dokuwiki__top" title="Do góry [t]" rel="nofollow" accesskey="t"><span>Do góry</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"/></svg></a></li> </ul> </div> </nav> </div><!-- /wrapper --> <!-- ********** FOOTER ********** --> <footer id="dokuwiki__footer"><div class="pad"> <div class="license">Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji: <bdi><a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license" class="urlextern">CC Attribution-Share Alike 4.0 International</a></bdi></div> <div class="buttons"> <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license"><img src="/lib/images/license/button/cc-by-sa.png" alt="CC Attribution-Share Alike 4.0 International" /></a> <a href="https://www.dokuwiki.org/donate" title="Donate" ><img src="/lib/tpl/dokuwiki/images/button-donate.gif" width="80" height="15" alt="Donate" /></a> <a href="https://php.net" title="Powered by PHP" ><img src="/lib/tpl/dokuwiki/images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a> <a href="//validator.w3.org/check/referer" title="Valid HTML5" ><img src="/lib/tpl/dokuwiki/images/button-html5.png" width="80" height="15" alt="Valid HTML5" /></a> <a href="//jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS" ><img src="/lib/tpl/dokuwiki/images/button-css.png" width="80" height="15" alt="Valid CSS" /></a> <a href="https://dokuwiki.org/" title="Driven by DokuWiki" ><img src="/lib/tpl/dokuwiki/images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a> </div> <div style="margin-top: 2em; font-size:90%" class="dokuwiki"><div style="float:right"><a href="http://www.splitbrain.org/personal#imprint" style="float:right; text-decoration: none; color:#333">Imprint</a></div></div><!-- Include for DokuWiki site wide top bar --> <style type="text/css"> @media screen { body { padding-top: 30px; } #global__header { position: absolute; top: 0; left: 0; text-align: left; vertical-align: middle; line-height: 1.5; background-color: #333; box-shadow: 0 0 8px rgba(0,0,0,0.5); width: 100%; margin: 0; padding: 5px 20px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; white-space: nowrap; overflow: hidden; } #global__header h2 { position: absolute; left: -99999em; top: 0; overflow: hidden; display: inline; } #global__header ul, #global__header li { margin: 0; padding: 0; list-style: none; display: inline; line-height: 1.5; } #global__header a { color: #bbb; text-decoration: none; margin-right: 20px; font-size: 14px; font-weight: normal; } #global__header a:hover, #global__header a:active, #global__header a:focus { color: #fff; text-decoration: underline; } #global__header form { float: right; margin: 0 0 0 20px; } #global__header input { background-color: #333; background-image: none; border: 1px solid #bbb; color: #fff; box-shadow: none; border-radius: 2px; margin: 0; line-height: normal; padding: 1px 0 1px 0; height: auto; } #global__header input.button { border: none; color: #bbb; } #global__header input.button:hover, #global__header input.button:active, #global__header input.button:focus { color: #fff; text-decoration: underline; } } /* /@media */ @media only screen and (min-width: 601px) { /* changes specific for www.dokuwiki.org */ #dokuwiki__header { padding-top: 3em; } #dokuwiki__usertools { top: 3em; } /* changes specific for bugs.dokuwiki.org */ div#container div#showtask { top: 40px; } } /* /@media */ @media only screen and (max-width: 600px) { body { padding-top: 0; } #global__header { position: static; white-space: normal; overflow: auto; } #global__header form { float: none; display: block; margin: 0 0 .4em; } } /* /@media */ @media print { #global__header { display: none; } } /* /@media */ </style> <div id="global__header"> <h2>Global DokuWiki Links</h2> <form method="get" action="https://search.dokuwiki.org/" target="_top"> <input type="text" name="q" title="Search all DokuWiki sites at once" class="input" /> <input type="submit" title="Search all DokuWiki sites at once" value="Search" class="button" /> </form> <ul> <li><a href="https://download.dokuwiki.org" title="Download the latest release" target="_top">Download</a></li> <li><a href="https://www.dokuwiki.org" title="Read the DokuWiki documentation" target="_top">Wiki</a></li> <li><a href="https://forum.dokuwiki.org" title="Ask questions in the DokuWiki forum" target="_top">Forum</a></li> <li><a href="https://irc.dokuwiki.org" title="Check IRC chat logs or join the chat" target="_top">IRC</a></li> <li><a href="https://github.com/splitbrain/dokuwiki/issues" title="Report and track bugs" target="_top">Bugs</a></li> <li><a href="https://translate.dokuwiki.org/" title="Help translating the DokuWiki interface" target="_top">Translate</a></li> <li><a href="https://github.com/splitbrain/dokuwiki" title="Access the most recent git commits" target="_top">Git</a></li> <li><a href="https://xref.dokuwiki.org/reference/dokuwiki/" title="Cross-Reference of the DokuWiki source code" target="_top">XRef</a></li> <li><a href="https://codesearch.dokuwiki.org/" title="Search through the sources of DokuWiki, plugins and templates" target="_top">Code Search</a></li> </ul> </div> <!-- end of DokuWiki top bar include --> </div></footer><!-- /footer --> </div></div><!-- /site --> <div class="no"><img src="/lib/exe/taskrunner.php?id=pl%3Arewrite&1743832832" width="2" height="1" alt="" /></div> <div id="screen__mode" class="no"></div></body> </html>