ru:rewrite
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
ru:rewrite [2011-01-10 06:00] – [URL-преобразование] temirgaleev | ru:rewrite [2024-04-13 07:11] (текущий) – 95.165.91.33 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== URL-преобразование ====== | ====== URL-преобразование ====== | ||
- | По умолчанию | + | По умолчанию |
- | %%http:// | + | < |
Такие URL выглядят довольно страшненько и, кроме того, плохо индексируются поисковыми машинами. | Такие URL выглядят довольно страшненько и, кроме того, плохо индексируются поисковыми машинами. | ||
- | Выходом из этой ситуации является использование URL-преобразования. | + | Выходом из этой ситуации является использование URL-преобразования. |
^ Значение ^ Описание ^ Пример URL ^ | ^ Значение ^ Описание ^ Пример URL ^ | ||
| 0 | Преобразование URL не используется. Это значение по умолчанию. | %%http:// | | 0 | Преобразование URL не используется. Это значение по умолчанию. | %%http:// | ||
- | | 1 | Преобразование URL средствами веб-сервера. | + | | 1 | Преобразование URL средствами веб-сервера. |
- | | 2 | Преобразование URL делается самим DokuWiki. | %%http:// | + | | 2 | Преобразование URL делается самой «ДокуВики». | %%http:// |
+ | |||
+ | Преобразование URL отключено по умолчанию потому, | ||
+ | |||
+ | **К сведению.** Чтобы опробовать примеры, | ||
+ | |||
+ | ===== Метод 0: редактирование php-кода, | ||
+ | Далее речь пойдет о замене стартовой страницы “doku.php, | ||
+ | * Если вы хотите изменить имя папки (по умолчанию ' | ||
+ | * Если вы хотите изменить имя стандартного файла ' | ||
+ | 1. Отредактируйте файл ' | ||
+ | <code php> | ||
+ | |||
+ | 2. Отредактируйте файл < | ||
+ | <code php><? | ||
+ | if(!defined(' | ||
+ | Это все! | ||
+ | |||
+ | Если вы нашли еще php-файлы на редактирование, | ||
+ | |||
+ | С ув. Bronek | ||
- | Преобразование URL отключено по умолчанию потому, | ||
- | **К сведению** Чтобы опробовать примеры, | ||
===== Метод 1: с помощью веб-сервера ===== | ===== Метод 1: с помощью веб-сервера ===== | ||
- | | $conf['userewrite'] = 1; | | + | :!: Не забудьте установить следущие опции в Настройках вики |
- | Опишем эти настройки для разных веб-серверов. | + | * Удобочитаемые адреса (URL): **.htaccess** |
+ | * Использовать слэш в качестве разделителя именных зон в URL: [**x**] | ||
+ | Иначе правила URL-преобразований не будут работать. | ||
+ | |||
+ | ==== Hiawatha ==== | ||
+ | → [[install: | ||
==== Apache ==== | ==== Apache ==== | ||
- | Преобразование URL в Apache делается с помощью модуля **mod_rewrite** для [[http:// | + | Преобразование URL в Apache делается с помощью модуля **mod_rewrite** для [[http:// |
<code apache> | <code apache> | ||
Строка 30: | Строка 53: | ||
</ | </ | ||
- | Во многих клонах Linux (Ubuntu, Debian и т.д.) вы можете активировать mod_rewrite так: | + | Во многих клонах Linux (Ubuntu, Debian и т. д.) вы можете активировать |
<code bash> | <code bash> | ||
Строка 36: | Строка 59: | ||
</ | </ | ||
- | Настройка модуля mod_rewrite делается с помощью так называемых **правил преобразования** (rewrite rules), которые могут быть определены как в основном файле настройки сервера или в файле .htaccess в основной директории | + | Настройка модуля |
<code apache> | <code apache> | ||
Строка 55: | Строка 78: | ||
Предположим, | Предположим, | ||
Тогда вам нужно написать в этой строке '' | Тогда вам нужно написать в этой строке '' | ||
- | Однако, | + | Однако, |
=== Некоторые замечания === | === Некоторые замечания === | ||
- | Файл .htaccess принимается во внимание только, | + | Файл |
<code apache> | <code apache> | ||
Строка 67: | Строка 90: | ||
</ | </ | ||
- | PS: В примере выше в '' | + | P. S. В примере выше в '' |
- | В качестве альтернативы вы можете указать вышеприведенные правила преобразования непосредственно в httpd.conf: | + | В качестве альтернативы вы можете указать вышеприведенные правила преобразования непосредственно в '' |
<code apache> | <code apache> | ||
< | < | ||
RewriteEngine on | RewriteEngine on | ||
- | ... rewrite rules here ... | + | ... здесь правила преобразования... |
</ | </ | ||
</ | </ | ||
Строка 80: | Строка 103: | ||
Может понадобиться перегрузка Apache для того, чтобы изменения вступили в силу. | Может понадобиться перегрузка Apache для того, чтобы изменения вступили в силу. | ||
- | Некоторые пользователи сообщают о появлении ошибке | + | Некоторые пользователи сообщают о появлении ошибке |
<code apache> | <code apache> | ||
Строка 89: | Строка 112: | ||
</ | </ | ||
- | Приведенные выше правила преобразования отсылают все запросы на несуществующие файлы и директории к основному | + | Приведённые выше правила преобразования отсылают все запросы на несуществующие файлы и директории к основному |
- | Это может быть применено и к виртуальным отображениям (aliases). Некоторые сайты отображают доступ к статистике в виртуальной директории /stats. Для того, чтобы эта виртуальная директория оставалась доступной, | + | |
<code apache> | <code apache> | ||
Строка 100: | Строка 122: | ||
</ | </ | ||
- | Если ваш сайт работает без RewriteBase, | + | Если ваш сайт работает без RewriteBase, |
<code apache> | <code apache> | ||
Строка 254: | Строка 276: | ||
Using Apache' | Using Apache' | ||
- | |||
- | |||
- | |||
===== Чистые ID сессий PHP ===== | ===== Чистые ID сессий PHP ===== | ||
- | Не смотря на использование | + | Несмотря на использование |
- | + | ||
- | Despite using " | + | |
< | < | ||
Строка 268: | Строка 285: | ||
</ | </ | ||
- | Этот параметр является ID сессии PHP, и добавляется самим PHP автоматически. Это абсолютно не связано с преобразованием URL. | + | Этот параметр является ID сессии PHP и добавляется самим PHP автоматически. Это абсолютно не связано с преобразованием URL. Для того, чтобы избежать этого, вы можете принудить PHP всегда использовать cookies для работы с сессиями, выставив опцию '' |
- | Для того чтобы избежать этого, вы можете принудить PHP всегда использовать cookies для работы с сессиями выставив опцию '' | + | |
- | Это обычно делается в файле php.ini (если вы используете сервер хостера, | + | Это обычно делается в файле |
<code ini> | <code ini> | ||
- | session.use_only_cookies=1 | + | session.use_only_cookies = 1 |
</ | </ | ||
- | Если вы все еще видите ID сессий, | + | Если вы все ещё видите ID сессий, |
<code ini> | <code ini> | ||
- | session.use_trans_sid=0 | + | session.use_trans_sid = 0 |
</ | </ | ||
- | Если ваш PHP работает как модуль Apache, то у вас есть возможность подправить эти значения в файле .htaccess используя следующий синтаксис: | + | Если ваш PHP работает как модуль Apache, то у вас есть возможность подправить эти значения в файле |
< | < | ||
Строка 290: | Строка 306: | ||
</ | </ | ||
- | Если вы не можете использовать ни то, ни другое решение (многие вебхостеры запрещают редактирование php.ini и использование php_flag в .htaccess), вам придется редактировать conf/ | + | Если вы не можете использовать ни то, ни другое решение (многие вебхостеры запрещают редактирование |
<code php> | <code php> | ||
ini_set(' | ini_set(' | ||
</ | </ | ||
- | |||
> My problem was that my **session.cookie_domain** was incorrectly set (I'm doing virtual hosting, and the domain name was incorrect). I added < | > My problem was that my **session.cookie_domain** was incorrectly set (I'm doing virtual hosting, and the domain name was incorrect). I added < | ||
Строка 349: | Строка 365: | ||
# 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. | # 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. | ||
</ | </ | ||
+ | |||
+ | Trouble. apache2, php2 (external module), current dokuwiki, configuration in virtual host: | ||
+ | < | ||
+ | < | ||
+ | Order allow,deny | ||
+ | Deny from all | ||
+ | Satisfy All | ||
+ | </ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | and request to " | ||
+ | error log says: client denied by server configuration: | ||
+ | rewrite log: | ||
+ | < | ||
+ | 85.21.2.184 - - [25/ | ||
+ | 85.21.2.184 - - [25/ | ||
+ | 85.21.2.184 - - [25/ | ||
+ | 85.21.2.184 - - [25/ | ||
+ | 85.21.2.184 - - [25/ | ||
+ | </ | ||
+ | thx | ||
+ | |||
+ | ---- | ||
+ | |||
+ | * [[http:// | ||
+ | 1) __C: | ||
+ | <code perl httpd.conf> | ||
+ | # absolute minimum configuration for DokuWiki on a Stick | ||
+ | # change the Listen directive if you want to use a different port | ||
+ | ... | ||
+ | ... | ||
+ | |||
+ | # Configure the path to php.ini | ||
+ | PHPIniDir php | ||
+ | |||
+ | # http:// | ||
+ | < | ||
+ | AllowOverride AuthConfig FileInfo Limit | ||
+ | </ | ||
+ | |||
+ | |||
+ | AcceptPathInfo off | ||
+ | KeepAlive on | ||
+ | KeepAliveTimeout 15 | ||
+ | TimeOut 30 | ||
+ | DirectoryIndex index.html index.php | ||
+ | </ | ||
+ | |||
+ | |||
+ | 2) __C: | ||
+ | <code perl .htaccess> | ||
+ | ## http:// | ||
+ | |||
+ | RewriteEngine on | ||
+ | |||
+ | RewriteRule ^_media/ | ||
+ | RewriteRule ^_detail/ | ||
+ | RewriteRule ^_export/ | ||
+ | RewriteRule ^$ doku.php | ||
+ | RewriteCond %{REQUEST_FILENAME} | ||
+ | RewriteCond %{REQUEST_FILENAME} | ||
+ | RewriteRule (.*) doku.php? | ||
+ | RewriteRule ^index.php$ | ||
+ | |||
+ | </ | ||
+ | |||
+ | 3) __C: | ||
+ | <code php local.php> | ||
+ | .. | ||
+ | $conf[' | ||
+ | $conf[' | ||
+ | $conf[' | ||
+ | .. | ||
+ | </ | ||
+ | |||
+ |
ru/rewrite.txt · Последнее изменение: 2024-04-13 07:11 — 95.165.91.33