По умолчанию ссылки выглядят так: /w/index.php?title=article. Чтобы сделать их такими же, как в Википедии, есть полтора десятка способов.
У меня сработал такой:
В файл LocalSettings.php добавляем следующий код:
$wgScriptPath = "/wiki";
$wgScript = "$wgScriptPath/index.php";
$wgRedirectScript = "$wgScriptPath/redirect.php";
$wgArticlePath = "$wgScriptPath/$1";
В корневом каталоге сайта создаем файлик .htaccess со следующим содержимым:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^wiki/(.+)$ /wiki/index.php?title=$1 [L,QSA]
26.08.2009 в 23:17
Привет Админ!
хороший материал, очень полезный. По крайней мере, слегка понял. Но, видимо, много тонкостей есть в разных версиях. Вот я поставил сейчас 1.15.
Вроде бы ничего, разобрался. Но, твой пример с заменой длинных ссылок не прокатил.
Попробовал наобум из английского мануала. Но явно не хватает знаний пхп-кодинга и знания английского.
Хотя мне помог один чел сделать короткие ссылки, но, беда в том, что при редактировании уже имеющихся страниц, происходит полная путаница.
В адресе страницы редактирования появляется лишнее значение (index.php).
Чего делать, фиг знает. Может плюнуть на них на эти длинные ссылки?
А может глянешь и поможешь?
27.08.2009 в 15:23
Вася, если помогу, то нескоро — пока слишком занят(
27.08.2009 в 15:24
По поводу длинных ссылок только помню, что в английском мануале было несколько вариантов. Попробуй остальные.
27.08.2009 в 17:36
Спасибо.
Ладно, думаю, что не судьба пока. Чеснслово, ковыряться в кодах не понимая сути, это реально фигня. Так что, ничего страшного думаю, если останутся длинные ссылки.
24.09.2009 в 22:07
Я вот по поводу того что у меня не показывается title=article
У меня ссылка выглядит следующим образом
мойсайт.ru/index.php5/Заглавная страница
Как быть?
24.09.2009 в 22:18
Sancho, см.
http://www.mediawiki.org/wiki/Manual:Short_URL/wiki.php/Page_title_—_No_root_No_htaccess
23.11.2009 в 19:37
Вот рабочий вариант для последней версии
В файле LocalSettings.php:
$wgArticlePath = «/wiki/$1»;
$actions = array(‘edit’, ‘watch’, ‘unwatch’, ‘delete’,’revert’, ‘rollback’, ‘protect’,
‘unprotect’,’info’,’markpatrolled’,’validate’,’render’,’deletetrackback’,’print’,
‘dublincore’,’creativecommons’,’credits’,’submit’,’viewsource’,’history’,’raw’,
‘purge’);
foreach ($actions as $a) {
$wgActionPaths[$a] = «/action/$a/$1»;
}
Тут я изменил от изначального кода только строчку:
$wgActionPaths[$a] = «/action/$a/$1»;
в оригинале она выглядела:
$wgActionPaths[$a] = «$wgScriptPath/action/$a/$1»;
В файле .htaccess:
php_flag register_globals off
RewriteEngine on
RewriteRule ^wiki/?(.*)$ ./index.php?title=$1 [L,QSA]
RewriteRule ^action/([a-z]*)/(.*)$ ./index.php?action=$1&title=$2 [L,QSA]
Тут ничего не менял.
Ещё не проверял все функции с этим кодом, но редактирование и создание новой статьи работает как надо.
24.12.2009 в 21:27
Сработал такой способ: дефолтные настройки, плюс
$wgArticlePath = «/wiki/$1»; # Virtual path (left part of first rewrite rule). MUST be DIFFERENT from the path above!
$wgUsePathInfo = true;
и .htaccess
RewriteEngine On
RewriteRule ^wiki/(.*)$ /w/index.php?title=$1 [PT,L,QSA]
RewriteRule ^wiki/*$ /w/index.php [L,QSA]
RewriteRule ^/*$ /w/index.php [L,QSA]
ps капча понравилась )