Manual:Short URL/Apache/ru

Эти инструкции помогают настроить короткие URL-ссылки на Apache. Веб-сервер LiteSpeed совместим с Apache и может быть настроен относительно одинаково. Для получения информации о том, что такое короткие URL-адреса, или получить инструкции по настройке для других серверов см. . Если Вы не знаете, какой веб-сервер вы используете, так как вы используете какой-то веб-хостинг, очень вероятно, что ваш хост использует Apache.

Настройка
Перед началом работы необходимо определиться с именем виртуального пути "короткий url".

В этом руководстве мы рекомендуем/предполагаем следующее. Не забудьте использовать свои собственные пути, если они отличаются.


 * Каталог MediaWiki находится по адресу:
 * Требуемый формат короткого URL:

Настройка сервера
Найдите нужный файл Рекомендуется настроить короткие URL-адреса в Apache путем редактирования конфигурационных файлов Apache. Для этого требуется доступ к конфигурации сервера. Если вы находитесь на общем хосте, вы, скорее всего, не и нужно будет использовать файл  вместо этого. Использование файлов  менее эффективно и не дает вам столько контроля, когда дело доходит до причудливых настроек с несколькими доменами, но они достаточно мощны, чтобы настроить большинство коротких конфигураций url. Пользователи LiteSpeed должны использовать метод.

Используйте инструкции в одном из следующих двух разделов, в зависимости от того, есть ли у вас root-доступ или нужно использовать  вместо этого.

Найдите файл конфигурации Apache (root-доступ)

Корректный файл конфигурации для редактирования для корневых конфигураций может находиться в одном из нескольких мест.

Правильный конфигурационный файл для редактирования - это тот, который находится в, где была настроена конфигурация для вашей вики. Большинство дистрибутивов linux настраивают Apache с набором папок  и.

Правильный конфигурационный файл для редактирования находится в $code3, где была настроена конфигурация для вашей Вики. Если Вы не настроили его и используете  по умолчанию для настройки Вики, то вы можете отредактировать.

Не забудьте включить переопределения с помощью  в. Он отключен по умолчанию в Ubuntu 12.04 и Ubuntu 12.10.

Если в вашем дистрибутиве нет этих каталогов, вы должны отредактировать файл конфигурации Apache напрямую. Этот файл должен быть в. Обратите внимание, что это используется, чтобы быть названным, если у вас есть   и не   в   является тот, который вы хотите редактировать.

Если ваш Apache config не находится ни в одном из этих мест, вы должны обратиться к документации для любой системы, которую Вы использовали для установки Apache, и найти расположение файла конфигурации Apache.

Если вы находитесь на виртуальном хостинге без доступа к файлам конфигурации Apache вы должны использовать файл .htaccess вместо этого.

В конфигурационном файле Apache у вас, скорее всего, будет блок VirtualHost, содержащий вашу wiki. Если он у вас есть, то это то место, куда будут отправляться ваши правила перезаписи. Конфигурация RewriteRule не наследуется, поэтому не помещайте эти параметры конфигурации в глобальную конфигурацию, если вы используете VirtualHost.

После того, как вы настроили конфигурацию, как указано выше, внутри Apache, вам нужно будет перезапустить Apache, чтобы заставить его применить новую конфигурацию.


 * Если вы используете Plesk или cPanel, у него должен быть способ перезапуска сервера.
 * Из командной строки команда обычно выглядит примерно так:,  ,   или, как в последних версиях Fedora,  . Эти команды должны выполняться от имени пользователя root, обычно с префиксом.

Куда девать .htaccess
Если вы используете файл, вам нужно будет отредактировать или создать этот файл. Найдите путь, который содержит как ваш путь к скрипту, так и ваш виртуальный путь. Обычно это означает верхний каталог вашего сайта, но давайте рассмотрим несколько примеров:

Обратите внимание, что если вы хотите сделать перенаправление с основного домена на главную страницу вашей вики (например, http://example.org/ http://example.org/wiki/Main_Page ). Тогда вам всегда нужно настраивать файл .htaccess на верхнем уровне, даже если другие каталоги вложены глубже.

Настройка правил перезаписи
Остальную часть этого раздела легче понять после краткого ознакомления с синтаксисом Apache, но этот краткий обзор не заменяет полную документацию Apache:

Директива  определяет условие, которое должно быть true, прежде чем может быть применен следующий за ним RewriteRule. Одна или несколько директив RewriteCond могут предшествовать директиве RewriteRule, и все директивы RewriteCond, которые предшествуют RewriteRule, должны быть истинными, прежде чем это правило может быть применено к URI. В следующих примерах  принимает форму ссылки на переменные сервера, например. Хотя существует много, в следующих примерах используются   (true, когда testString является обычным файлом) и   (true, когда testString является каталогом), и им предшествует символ отрицания,.

Директива  может быть вызвана как в файле , так и в любом файле  , но когда правило перезаписи появляется в файлах .htaccess, неявный контекст для каждого каталога влияет на шаблон  , поскольку правила относятся к текущему каталогу. В файлах  шаблоны являются не по отношению к полному исходному URI. Для файлов  шаблоны никогда не должны начинаться с косой черты, , потому что вложенная строка URI никогда не будет начинаться с. В следующих примерах используется флаг, значение которого Немедленно остановите процесс перезаписи и больше не применяйте никаких правил.

Первое правило, которое вам понадобится в вашей конфигурации, - это включить механизм перезаписи:

Теперь нам нужно правило, чтобы сделать ваш путь к статье виртуальным путем, указывающим на index.php. Обязательно замените  и   путями, которые вы выбрали в начале (если они отличаются).

Если вы используете корневой URL-адрес вместо обычного короткого URL-адреса, вам нужно будет вместо этого использовать следующее (чтобы убедиться, что существующие файлы и каталоги не отображаются как статьи, например " ", " " и т.д.):

Sometimes, the above example doesn't work. The following (you can't set this in a, you need root access for this!) might work instead:

Optionally, you can include a rule to show the Main Page on the path itself, to simplify navigation when people visit urls without a page title specified:

The end result should look something like this:

or, if you used the way with the "Alias" statement:

LocalSettings.php
We need to make the following configurations in :

If you get an "Internal error" page saying "Redirect loop detected!" after you finish configuration you may be using something other than. If so you need to explicitly turn on short urls using the following line in your "LocalSettings.php" file:

If there is still an "internal error" check the log files of your server. Maybe you have to turn on  module.

Simple instructions
The following is a summary of what to do if you are not doing anything different than what MediaWiki recommends. If you want to do something else, you need to read all of the details above.


 * https://example.com/wiki/Main_Page ( url location )
 * /home/me/public_html/mediawiki/w/index.html ( index.html location )
 * /home/me/public_html/mediawiki/.htaccess ( .htaccess location )

Notice that the .htaccess file is NOT located in the "w" directory, but it is located in the directory above it.