Я новичок в этом, поэтому, пожалуйста, потерпите меня. Я установил MediaWiki на Lighttpd без проблем, за исключением того, что, когда я пытаюсь следовать инструкциям redwerks о том, как сократить URL-адреса для MediaWiki на Lighttpd, я всегда получаю очень разочаровывающее сообщение 404. Вот что я сделал:
на lighttpd.conf
:
## MediaWiki
url.rewrite-once = (
"^/wiki(/|$)" => "/w/index.php",
"^/$" => "/w/index.php",
)
url.rewrite-if-not-file = (
"^/w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$" => "/w/thumb.php?f=$1&width=$2",
"^/w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$" => "/w/thumb.php?f=$1&width=$2&archived=1",
)
на LocalSettings.php:
$wgScriptPath = "/w";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;
Помощь очень ценится, я могу скоро заплакать.
Метод «без слез» использует превосходный генератор конфигурации.
Примечание: Эта попытка ответа также является неудачной; это просто не работает. В официальная страница MediaWiki именно по этой теме заявляет следующее:
Предупреждение: Эта страница с коротким URL-адресом содержит плохие советы по настройке вашего сервера, которые могут привести к тому, что некоторые страницы вашей вики не будут работать и / или могут вызвать проблемы при обновлении.
Он продолжает предлагать с помощью генератора Redworks, но это все равно не работает. Кроме того, официальная страница MediaWiki отправляет смешанные сообщения о том, что мощь работай. Я нашел эта страница на $wgUsePathInfo
в котором говорится об этом интересном лакомом кусочке:
Примечание: Они часто ломаются, когда PHP настроен в режиме CGI. PATH_INFO может быть правильным, если cgi.fix_pathinfo установлен, но опять же, это может быть не так; lighttpd преобразует входящие данные пути в нижний регистр в системах с файловыми системами без учета регистра, а также были сообщения о проблемах на Apache. В целях безопасности мы продолжим отключать его по умолчанию в этих случаях.
Не тестировал это cgi.fix_pathinfo
идея пока что, но размещаю это здесь как ссылку. Если кто-то может опубликовать канонический ответ, пожалуйста, сделайте это! При необходимости скопируйте мой ответ! Давай как-нибудь так уладим этот мишег.
Остальной ответ - который, похоже, не работает - следует ниже.
В опубликованный ответ Tgr отлично, но если вы посмотрите на вывод этого генератора с его настройками по умолчанию для Lighted версии 1.5+, то вот вывод:
## MediaWiki
url.rewrite-once = (
"^/wiki(/|$)" => "/w/index.php",
"^/$" => "/w/index.php",
)
# Protect against bug 28235 (ported from MediaWiki's .htaccess file)
$HTTP["url"] =~ "^/w/images/" {
$HTTP["querystring"] =~ "\.[^\\/:*?\x22<>|%]+(#|\?|$)" {
access.deny-all = "enable"
}
}
# Deny access to deleted images folder"
$HTTP["url"] =~ "^/w/images/deleted(/|$)" {
access.deny-all = "enable"
}
# Deny access to folders MediaWiki has a .htaccess deny in"
$HTTP["url"] =~ "^/w/(cache|languages|maintenance|serialized)(/|$)" {
access.deny-all = "enable"
}
# Just in case, hide .svn and .git too
$HTTP["url"] =~ "/.(svn|git)(|$)" {
access.deny-all = "enable"
}
# Hide any .htaccess files
$HTTP["url"] =~ "(^|/).ht" {
access.deny-all = "enable"
}
# Uncomment the following code if you wish to hide the installer/updater
## Deny access to the installer
#$HTTP["url"] =~ "^/w/mw-config(/|$)" {
# access.deny-all = "enable"
#}
Видя, что url.rewrite-once
вверху - то же самое между исходной конфигурацией плаката, можно предположить, что проблема в следующем url.rewrite-if-not-file
кусок:
url.rewrite-if-not-file = (
"^/w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$" => "/w/thumb.php?f=$1&width=$2",
"^/w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$" => "/w/thumb.php?f=$1&width=$2&archived=1",
)
Поэтому я бы рекомендовал просто установить начальный фрагмент кода для Lighted следующим образом:
url.rewrite-once = (
"^/wiki(/|$)" => "/w/index.php",
"^/$" => "/w/index.php",
)
И настройки для LocalSettings.php
выглядят нормально как есть:
$wgScriptPath = "/w";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;
Если вы можете заставить это работать, добавьте другой access.deny-all
вещи, чтобы заблокировать установку, и все должно быть в порядке.
Но помимо всего этого проблема может заключаться в том, что исходный путь плаката к статье не /wiki/
и относительный путь к index.php
файл не /w/index.php
. Это могло быть просто /index.php
.
Да, это сбивает с толку… Но одни идеи помогают другим, пытающимся достичь этой цели.