Manual:Short URL/ru
This page is in progress of translating to Russian. You can help translating it or go to another language version that follows:
Эта страница в процессе перевода на русский язык. Вы можете помочь в переводе или перейти на другие языковые версии, указанные ниже:
Язык: | English • Deutsch • français • 日本語 • 한국어 • русский • 中文(简体) |
---|
Использование короткого веб-адреса, скрывающего сложный программный код, поможет посетителям вашего сайта легко запомнить принцип построения ссылки на нужную страницу. Во избежании проблем в будущем, рекомендуется настроить короткий веб-адрес вашего сайта в самом начале работы. Для улучшения подачи информации, эта страница разделена на отдельные мини-руководства.
В последующих примерах подразумевается, что путь установки MediaWiki выглядит следующим образом:
/var/www/localhost/htdocs/mediawiki
(установка из под администратора)/home/johndoe/public_html/mediawiki
(при использовании виртуального хостинга)
Также, предполагается, что веб-адрес MediaWiki выглядит так:
http://example.com/wiki/index.php/Название_страницы
(для версии 1.11.0) илиhttp://example.com/wiki/index.php?title=Название_страницы
Используя методы, описанные ниже, длинный веб-адрес может быть преобразован в короткий, такой как эти:
http://example.com/Название_страницы
http://example.com/wiki/Название_страницы
http://wiki.example.com/Название_страницы
Contents
А что не так с длинным веб-адресом?[edit | edit source]
Ответ: ничего. Более того, только длинная форма ссылок будет работать при любых условиях -- хорошая возможность перестраховаться, если вдруг вам придётся перенести ваш вики-проект на хостинг, не поддерживающий короткие веб-адреса.
Однако, большинству пользователей рекомендуется пожертвовать некоторой долей переносимости инсталляции, ради более красивого и опрятного вида веб-адреса.
Принудительное использование длинных ссылок[edit | edit source]
На всякий случай - способ вернуть всё назад:
$wgUsePathInfo=false; $wgScriptPath=""; #принудительно использовать длинный вид ссылок
Виртуальный хостинг[edit | edit source]
Большинство систем виртуального хостинга не позволяют изменять httpd.conf. Поэтому, если ваш сайт находится на виртуальном хостинге, обратитесь в техподдержку компании, предоставляющей вам услуги хостинга. Если же и там не помогут, то для получения желаемого результата вам придётся изменять файл .htaccess
Однако, если же файл httpd.conf доступен для редактирования (что подразумевает наличие прав администратора), то следует выбрать метод именно с его использованием, так как это лучше отразится на производительности сайта[1]. Обратите внимание, необходимо отредактировать или .htaccess или httpd.conf - только один из них!
Рекомендованный метод (стиль Википедии)[edit | edit source]
Следующий метод используется в Википедии — он эффективен и довольно прост для использования, однако, при этом требуются права администратора.
Особенности[edit | edit source]
- Этот метод надёжен и гарантированно работает на всех версиях MediaWiki. Другие методы не тестировались разработчиками MediaWiki и могут не работать при будущих изменениях в программном коде.
- Вам не нужно переписывать статьи, находящиеся в корневом каталоге сайта. Адреса, подобные
http://wiki.mysite.com/Article_title
, могут выглядеть красивее, чемhttp://www.mysite.com/wiki/Article_title
, но может стать причиной возникновения ряда проблем, включая проблемы с robots.txt, favicon.ico, и путями скрипта. - Изменяются не все адреса, но это хорошо. Это позволяет легко заблокировать поисковым роботам всё, кроме просмотра статей, одним простым правилом. Кроме того, вы можете с легкостью выделить фактические просмотры статьи из других доступных журналов анализа, и так далее. Ссылки для правки страниц и так далее, чуть менее запоминающиеся, но и это не проблема: главное статьи.
- В этом методе используются Alias вместо Rewrite. Это проще и надежнее (хотя, к сожалению, это требует корневого доступа).
В каком случае не делать короткие ссылки?[edit | edit source]
- Если Вы не используете Apache.
- Если у вас нет прав доступа root (Администратора).
Как это сделать?[edit | edit source]
Прежде всего, убедитесь, что вы используете Apache и имеете корневой доступ к редактированию httpd.conf (.htaccess не достаточно!). Если что то из вышеперечисленного не так, Вы не сможете использовать именно этот метод; Вам нужно изменять это, надлежащим образом, либо использовать другие методы, перечисленные ниже, желательно Manual:Short URL/wiki/Заголовок страницы -- без корневого доступа.
- Найдите каталог в который Вы установили движок. По умолчанию, это подкаталог с именем
/w/
относительно корневой папки сервера, как это сделано в Википедии. Если Вы выбрали другой путь, замените/w/
своим путем. - Выберите директорию в которой будут находится ваши статьи. Мы будем исходить из того, что вы выбрали путь
/wiki/
, как это сделано в Википедии. Так статьи, будут доступны по адресуhttp://www.yoursite.com/wiki/Название_статьи
. Если вы выбрали другой путь, замените/wiki/
этим путем, везде где вы его увидите. Не создавайте эту папку. Она не должна существовать. Помимо того, путь не должен быть корнем сервера, либо аналогом в виртуальной директории. Последний пункт очень важен: не пытайтесь игнорировать его, чтобы получить более совершенные ссылки, иначе этот метод не будет работать. - В конце LocalSettings.php, добавьте следующие строки:
$wgScriptPath = "/w"; # Путь к фактическому каталогу с файлами.
$wgArticlePath = "/wiki/$1"; # Виртуальный путь. Он должен быть отличным от того, который используется в $wgScriptPath
$wgUsePathInfo = true; # Включение использования красивых ссылок
- Отредактируйте httpd.conf так, чтобы он содержал правило
Alias /wiki /path/to/your/wiki/index.php
. Заметьте, что второй путь относится к корню файловой системы, НЕ к корню веб-сервера! Это может быть, к примеруAlias /wiki /var/www/w/index.php
, если/var/www/
является корнем вашего веб-сервера. - Сделайте так, чтобы Apache прочитал свой конфигурационный файл (лучше перезапустите его). Хотя, так же можно воспользоваться командой
apachectl graceful
или похожей командой из под рута, или воспользоваться возможностями программы WebHost Manager или похожим ПО. - В корне вашего веб-сервера, создайте файл robots.txt если такого не существует. Затем добавьте следующие строки в его конец:
User-agent: *
Disallow: /w/
Disallow: /wiki/Special:Search
Disallow: /wiki/Special:Random
Готово! Теперь ваш вики-сайт будет работать идеально. Если нет, зайдите в IRC-канал irc://irc.freenode.org/mediawiki и сообщите о всех проблемах.
Другие методы: мини-руководства[edit | edit source]
Вы можете написать собственное мини-руководство и разместить ссылку на него здесь. Пожалуйста, используйте простое и понятное всем название вашего руководства!
Для облегчения выбора подходящего метода, используйте следующие изображения: |
example.com/Название_страницы[edit | edit source]
Создание веб-адреса, вида: example.com/Название_страницы
- Manual:Short URL/Page title -- PHP as a CGI module, no root access
x35
x7
- Manual:Short URL/Page title -- Aliasing method--Root access
x4
x6
- Manual:Short URL/Page title -- Working method with mediawiki-1.11
x20
x6 использован этот метод
x2
example.com/wiki/Название_страницы[edit | edit source]
Создание веб-адреса, вида: example.com/wiki/Название_страницы
- Manual:Short URL/wiki/Page title -- PHP as a CGI module, no root access
x10
x4
- wiki/Заголовок страницы -- без корневого доступа
x9
x4
- Manual:Short URL/wiki/Page title -- Both no root and root access
x2
- Manual:Short URL/wiki/Page title -- No hidden subdirectory, no root access
x4
Администраторский доступ
Для использования этих методов необходимы права администратора. Если вы размещаете ваш проект на виртуальном хостинге, используйте руководства, для которых не требуются права администратора.
- Manual:Short URL/wiki/Page title
x11
- Manual:Short URL/wiki/Page title -- with aliases--root access
x5
x2
- Manual:Short URL/wiki/Page title -- Apache rewrite--root access
x4
Если метод Alias не подходит (например, вы используете PHP как CGI), вы можете использовать Apache. - Manual:Short URL/wiki/Page title -- Lighttpd rewrite--root access
www.example.com/подкаталог/wiki/Название_страницы[edit | edit source]
wiki.example.com/Название_страницы[edit | edit source]
Создание веб-адреса, вида: wiki.example.com/Page_title
- Manual:Short URL/wiki.example.com/Page_title--difficult
- Manual:Short URL/wiki.example.com/Page_title--Subdomain with no Subdirectory in Article URL
x10
- Manual:Short URL/wiki.example.com/Page_title--Subdomain using mod-rewrite
- Manual:Short URL/wiki.example.com/Page_title--Subdomain using Lighttpd
- Manual:Short URL/wiki.example.com/Page_title--Enabling a wiki using Apache Rewrite
Проблемы с амперсандом (&)[edit | edit source]
Объяснение: Эта проблема проявляется, когда у вас есть названия страниц с символами (например, &,?, #, + и /), которые, несмотря на правильное кодирование ссылки не правильно передается от mod_rewrite к скрипту. Это проявляется ошибкой 404 «Страница не найдена», потому что из заголовка вырезает особый символ, т.е. щелчок по ссылки "Джон & Мария" даст 404, потому MediaWiki ищет страницу с именем "Джон ".[2]
Решения:
- Manual:Short URL/Ampersand solution with root access
- Manual:Short URL/Ampersand semi-friendly solution with root access
Полезные советы[edit | edit source]
- Manual:Short URL/IIS6
- Manual:Short URL/Prevent bots from crawling index.php
- Manual:Short URL/Ignoring the Trailing slash
x1
- Manual:Short URL/Allowing for escaped characters in URI
Решение проблем[edit | edit source]
- Я получаю ошибки циклов Alias/Rewrite, такие как: 'Cannot find page www.example.com/wiki/wiki/wiki/wiki/wiki/ [...] /index.php'
Решение: Manual:Short URL/Repeated directory errors - Manual:Short URL/Page title -- Working method with mediawiki-1.11
Технические примечания[edit | edit source]
- ↑ Какой из файлов я должен отредактировать - httpd.conf или .htaccess? Хотя для изменения файла .htaccess и не требуются права администратора, его использование ведёт к потере производительности (в этом случае сервис httpd выполняет поиск по дереву каталогов и ищет все файлы .htaccess, которые можно использовать). Дополнительная информация - в документации Apache: [http://httpd.apache.org/docs/2.0/howto/htaccess.html#when Почему я (не) должен использовать .htaccess.
- ↑ Причина проблемы с амперсандом: Причиной проблемы является то, что амперсанд будет рассматриваться как разделитель строки запроса и никогда не попадет в окружающую среду выполнения PHP, поэтому нельзя допускать амперсанд в названии статьи. Проблема с амперсандом является старым и проблематичным багом mod_rewrite. Есть обсуждения других возможных решений на сайтах lists.wikimedia.org и fgiasson.com.
См. также[edit | edit source]
- Объяснение того, что делает каждое правило Apache Rewrite
- Объяснение о CGI-модулях
- Перезапись ссылки в IIS
- Конфигурационная настройка MediaWiki: Manual:$wgUsePathInfo — Следует ли использовать 'красивые' URL?
Внешние ссылки[edit | edit source]
Язык: | English • Deutsch • français • 日本語 • 한국어 • русский • 中文(简体) |
---|