======Переписывание URL-адресов======
По умолчанию DokuWiki не перезаписывает URL-адреса , в результате чего URL-адреса выглядят следующим образом:
http://example.com/doku.php?id=wiki:syntax
Эти URL-адреса несколько уродливы и могут плохо индексироваться некоторыми поисковыми системами. Переписывание URL-адресов предлагает решение этой проблемы, приводящее к более красивым URL-адресам.
=====Варианты переписывания=====
DokuWiki поддерживает два метода перезаписи URL , включаемых через опцию [[wiki:config:userewrite|userrewrite]]. Один из них основан на возможностях перезаписи веб-сервера; другой обрабатывает переписанные URL внутри DokuWiki. В таблице ниже обобщены эти опции.
^ Ценить ^ Информация ^ Пример URL-адреса ^
| 0 | Перезапись URL не используется. Это значение по умолчанию. | %%http://example.com/dokuwiki/doku.php?id=wiki:syntax%% |
| 1 | Перезапись выполняется веб-сервером. | %%http://example.com/dokuwiki/wiki:syntax%% |
| 2 | Переписыванием занимается DokuWiki. | %%http://example.com/dokuwiki/doku.php/wiki:syntax%% |
Перезапись URL-адресов отключена по умолчанию, поскольку для этого требуется дополнительная настройка помимо установки соответствующих [[wiki:config:userewrite|параметров конфигурации]] - эти конфигурации обсуждаются ниже.
====Вариант 1: веб-сервер====
Для этой опции сначала требуется настройка на веб-сервере. Как включить ее, зависит от используемого веб-сервера. Пожалуйста, обратитесь к ссылкам ниже для получения дополнительной информации.
* [[wiki:install:apache|Apache]] – использует модуль mod_rewrite . Его можно включить с помощью .htaccessфайла. (см. [[https://www.dokuwiki.org/install:apache|Апачи]])
* [[wiki:install:iis|iis]] – использует пользовательские правила перезаписи или модуль перезаписи
* [[wiki:install:nginx|nginx]] – имеет встроенную поддержку перезаписи
* [[wiki:install:php-webserver|Встроенный веб-сервер PHP]] — не требует настройки, перезапись будет работать с использованием маршрутизатора DokuWiki index.php
После включения поддержки перезаписи на веб-сервере эту опцию можно включить в конфигурации DokuWiki.
Выберите ''%%.htaccess%%'' опцию в раскрывающемся списке конфигурации перезаписи пользователя . Либо ''%%conf/local.php%%'' добавьте или измените строку в вашем файле так, чтобы она выглядела так:
$conf [ 'userrewrite' ] = 1 ;
В корневой папке DokuWiki найдите файл ''.htaccess.dist'' и скопируйте его как ''.htaccess''. Отредактируйте его и раскомментируйте строки, относящиеся к userwrite. Это короткий файл, который легко понять.
====Вариант 2: DokuWiki====
Эта опция не требует настройки веб-сервера. Однако она опирается на функцию PATH_INFO стандарта CGI, реализованную Apache. Некоторые конфигурации веб-сервера могут ее не поддерживать.
Чтобы включить эту опцию, выберите ''DokuWiki internal'' опцию в раскрывающемся списке конфигурации [[wiki:config:перезаписи пользователя]]. Либо ''conf/local.php'' добавьте или измените строку в вашем файле так, чтобы она выглядела так:
$conf['userewrite'] = 2;
=====Очистить идентификатор сеанса PHP====
Несмотря на использование «чистых» URL-адресов, вы можете столкнуться с параметром «DokuWiki» в URL-адресе , который выглядит следующим образом:
Идентификатор сеанса PHP:
http://example.com/example?DokuWiki=c81a95369a66576982119e2a60b557a5
Этот параметр — идентификатор сеанса PHP, который PHP добавляет автоматически. Он совершенно не связан с перезаписью. Чтобы избежать этого, вы можете заставить PHP всегда использовать куки для сеансов, установив опцию ''session.use_only_cookies'' для PHP.
Обычно это делается в файле конфигурации php.ini:
session.use_only_cookies=1
Вы также можете попробовать:
session.use_trans_sid=0
=====Смотрите также=====
* [[wiki:tips:httpslogin|Переписать правила для безопасного входа]]
* [[https://stackoverflow.com/questions/9153262/tips-for-debugging-htaccess-rewrite-rules | Советы по отладке правил перезаписи .htaccess]]