Я пытаюсь настроить несколько докувики, но я действительно изо всех сил ...
Я могу настроить его относительно легко, но я бы хотел использовать концепцию фермы ( https://www.dokuwiki.org/farms ). Недостатком является то, что он написан для apache, а не nginx, и в то же время я не нашел ни одного руководства nginx.
Я не могу использовать vhost, где он должен быть развернут (у меня есть локальный тест vhost, и я могу настроить это), и поэтому требуется эквивалент hginccess nginx.
Проблема, кажется, вокруг "животного" переписать
RewriteRule ^/?([^/]+)/(. *)/ фермер / $ 2?животное = 1 доллар США [QSA]
RewriteRule ^/?([^/]+) $ / фермер /?животное = 1 доллар США [QSA]
становится (в соответствующем месте).
переписать ^/?([^/]+) /(. *) / фермер / $ 2?животное = $ 1;
переписать ^/?([^/]+) $ / фермер /?животное = $ 1;
Ни одно из того, что я попробовал, не работает, поэтому я решил вернуться назад и следовать советам по перенаправлению ( https://www.dokuwiki.org/tips:redirect_farm ), и я не могу создать работающий Шаг 2. Настройка URL-адреса, связывающего тестирование перенаправления
Это мой localhost.conf.
сервер {слушай 80; имя_сервера localhost; access_log
/var/log/nginx/localhost_access_log main; журнал ошибок
/var/log/nginx/localhost_error_log info; rewrite_log on; корень
/ Var / WWW / локальный / HTDOCS; #location ~
/(data/|conf/|bin/|inc/|install.php) {отрицать все; }
location / {autoindex on; }
местоположение / сарай {#alias /var/ www /localhost / htdocs / farmer /;
rewrite ^/?([^/]+)/(.*) /farmer/$2?animal=$1; rewrite ^/?([^/]+)$ /farmer/?animal=$1; }
}
http://localhost/barn перенаправляет на "фермера", а в журналах отладки показано:
* 1 переписанные данные: "/farmer/", args: "animal = barn", клиент: 127.0.0.1, сервер: localhost, запрос: "GET /barn / HTTP / 1.1", хост: "localhost"
часть animal = barn вызывает беспокойство ... в равной степени http://localhost/barn/foo завершается с 404, и журналы перезаписи показывают:
переписанные данные: "/farmer/foo", args: "animal = barn", клиент: 127.0.0.1, сервер: localhost, запрос: "GET /barn /foo HTTP /1.1", хост: "localhost"
то, что я ожидал, было животное = Фу. Любой совет, как исправить переписать